Pengguna GitHub telah berjuang dengan masalah performa yang parah di Safari selama berbulan-bulan, dengan platform tersebut menjadi hampir tidak dapat digunakan untuk tugas-tugas pengembangan dasar. Masalah ini telah mencapai tingkat yang sangat kritis sehingga bahkan pengembang yang menggunakan perangkat keras kelas atas seperti MacBook Pro M4 dan Mac Studio dengan RAM 64GB mengalami perlambatan yang signifikan saat melihat pull request atau menjelajahi file kode.
Krisis performa ini berasal dari transisi GitHub dari server-side rendering ke arsitektur aplikasi satu halaman berbasis React. Perubahan ini telah menciptakan badai sempurna dari ketidakefisienan, terutama mempengaruhi pengguna Safari yang menghadapi dampak terberat dari masalah kompatibilitas antara mesin rendering browser dan interface GitHub yang berat JavaScript.
Laporan Perangkat Keras yang Terdampak:
- M4 MacBook Pro dengan RAM 64GB: Masih mengalami perlambatan yang parah
- M3 MacBook Pro: Fungsi pencarian berhenti bekerja pada file berukuran besar
- Mac Studio M4 Max dengan RAM 64GB: Lebih lambat dibandingkan MacBook Pro 2011 untuk tugas yang sama
- 16-inch MacBook Pro dengan 32-core Apple Silicon Max: Performa tidak dapat digunakan
Akar Masalah: Keputusan Arsitektur yang Salah
Masalah inti dapat dilacak kembali ke keputusan GitHub untuk meninggalkan sistem server-side rendering mereka yang sebelumnya cepat demi pendekatan berbasis React. Diskusi komunitas mengungkapkan bahwa GitHub sebelumnya menangani syntax highlighting di server, mengirimkan konten yang sudah diproses sebelumnya yang dapat ditampilkan browser dengan cepat. Sekarang, platform mengirim teks mentah yang tidak di-highlight yang harus diproses di sisi klien, membebani browser dengan tugas rendering yang kompleks.
Perubahan arsitektur ini telah menghasilkan pull request yang menghasilkan lebih dari 100.000 node DOM, banyak di antaranya adalah elemen SVG inline yang tidak terlihat namun tetap mengonsumsi daya pemrosesan. Masalah menjadi sangat akut ketika melihat pull request besar dengan ribuan baris yang berubah, di mana proses rendering Safari memaksimalkan penggunaan CPU dan menyebabkan interface menjadi benar-benar tidak responsif.
Node DOM adalah elemen individual dalam struktur halaman web, seperti teks, gambar, atau elemen pemformatan yang harus dilacak dan dirender oleh browser.
Perbandingan Dampak Performa:
- Sebelum Migrasi React: Rendering sisi server yang cepat, syntax highlighting diproses di server, performa baik pada perangkat keras lama
- Setelah Migrasi React: Pemrosesan sisi klien, 100.000+ node DOM per PR besar, penggunaan CPU mencapai 100% pada Safari
- Performa Browser: Chrome berkinerja lebih baik daripada Safari, Firefox menunjukkan performa yang baik, Safari hampir tidak dapat digunakan untuk PR besar
Tantangan Khusus Safari
Meskipun performa GitHub telah menurun di semua browser, pengguna Safari menghadapi tantangan unik karena perbedaan dalam cara browser menangani operasi CSS dan DOM. Perbaikan terbaru yang digabungkan oleh tim WebKit secara khusus menargetkan masalah performa CSS yang menyebabkan interface GitHub melambat di Safari.
Disparitas browser telah menjadi sangat mencolok sehingga banyak pengembang melaporkan beralih ke Chrome atau Firefox khusus untuk penggunaan GitHub, meskipun lebih memilih Safari untuk browsing web lainnya. Beberapa pengguna telah menemukan bahwa melakukan hard refresh halaman sebenarnya lebih cepat daripada menggunakan navigasi aplikasi satu halaman GitHub, menyoroti ketidakefisienan fundamental dalam sistem saat ini.
Biaya Tersembunyi dari Pengembangan Web Modern
Situasi GitHub mencerminkan masalah yang lebih luas dalam praktik pengembangan web kontemporer. Masalah performa platform tidak terbatas pada Safari - pengguna melaporkan masalah serupa di berbagai browser, dengan bahkan Chrome kesulitan pada pull request besar. Ini menunjukkan bahwa arsitektur yang mendasari, bukan bug khusus browser, adalah penyebab utama.
Pengalaman SSR GitHub yang lama sangat bagus. Anda bisa meninjau PR besar di mesin apa pun sebelum mereka melakukan perpindahan.
Menariknya, GitHub mempertahankan kemampuan untuk mengaktifkan server-side rendering untuk akun pengguna tertentu, sebagaimana dibuktikan oleh respons mereka terhadap keluhan performa sebelumnya. Namun, fitur ini tetap tersembunyi dari pengguna umum, menimbulkan pertanyaan mengapa perusahaan tidak kembali ke pendekatan yang lebih cepat secara lebih luas.
Solusi Tersembunyi GitHub:
- Flag server-side rendering (SSR) tersedia untuk akun individual
- SSR memberikan performa yang jauh lebih baik
- Fitur tidak tersedia secara publik di pengaturan pengguna
- GitHub dapat mengaktifkan SSR atas permintaan untuk keluhan performa
Perbaikan Darurat dan Prospek Masa Depan
Tim WebKit baru-baru ini telah mendorong perbaikan performa kritis yang secara khusus menargetkan masalah performa GitHub di Safari. Perbaikan ini berfokus pada optimisasi rendering CSS yang seharusnya memberikan bantuan langsung bagi pengguna Safari yang mengalami perlambatan terburuk.
Namun, masalah arsitektur fundamental tetap belum terselesaikan. Sampai GitHub mengatasi masalah inti dengan implementasi React mereka atau memberikan pengguna opsi untuk menggunakan server-side rendering, pengembang kemungkinan akan terus mengalami frustrasi dengan performa platform, terutama ketika bekerja dengan basis kode besar atau pull request yang kompleks.
Situasi ini berfungsi sebagai kisah peringatan tentang pentingnya pengujian performa di berbagai browser dan konfigurasi perangkat keras selama transisi arsitektur besar. Untuk saat ini, pengguna yang terdampak mungkin perlu mengandalkan browser alternatif atau menunggu optimisasi lebih lanjut dari GitHub dan vendor browser.
Referensi: The Github website is extremely slow on Safari #170758
