Rilis terbaru macOS 26 Tahoe dari Apple telah memperkenalkan masalah performa yang signifikan yang mempengaruhi aplikasi populer seperti Discord, VS Code, Slack, dan perangkat lunak berbasis Electron lainnya. Pengguna melaporkan stuttering dan lag di seluruh sistem ketika aplikasi-aplikasi ini berjalan, dengan penggunaan GPU melonjak drastis bahkan selama tugas sederhana seperti pergerakan jendela atau scrolling.
Masalah ini tampaknya berasal dari keputusan Electron untuk meng-override private API macOS yang disebut _cornerMask
, yang digunakan untuk membuat sudut halus untuk vibrant views dalam aplikasi. Ketika Apple mengubah cara kerja private API ini di macOS 26, hal tersebut menciptakan interaksi tak terduga yang menyebabkan proses WindowServer sistem mengonsumsi sumber daya GPU secara berlebihan.
Aplikasi yang Terdampak:
- Discord
- VS Code
- Slack
- Ferdium
- Bitwarden Desktop
- SiYuan
- DeltaChat
- Yandex Music
- Jitsi Meet
- Cursor IDE
Akar Masalah: Penyalahgunaan Private API
Investigasi teknis mengungkapkan bahwa Electron meng-override private API _cornerMask
milik Apple untuk menerapkan corner mask khusus pada vibrant views. Override ini mengganggu pipeline rendering shadow baru macOS 26, menyebabkan sistem kembali ke metode rendering yang tidak efisien. Masalah ini menjadi lebih parah ketika beberapa aplikasi Electron berjalan secara bersamaan, dengan beberapa pengguna melaporkan penggunaan GPU melompat ke 100% dan kipas berputar pada kecepatan maksimum.
Private API adalah fungsi sistem internal yang ditandai Apple sebagai terlarang untuk developer karena dapat berubah tanpa pemberitahuan antara pembaruan sistem.
Dampak Performa:
- Penggunaan GPU melonjak dari 0% menjadi 25% dengan satu aplikasi Electron
- Penggunaan GPU mencapai 100% ketika beberapa aplikasi Electron berjalan bersamaan
- Lag dan stuttering pada UI di seluruh sistem
- Kecepatan kipas meningkat hingga maksimum
- Masalah teratasi ketika aplikasi diminimalkan
Perdebatan Komunitas Tentang Tanggung Jawab
Komunitas developer terbagi mengenai siapa yang bertanggung jawab atas masalah ini. Beberapa berargumen bahwa developer Electron seharusnya tidak pernah menggunakan private API, karena Apple secara eksplisit memperingatkan terhadap praktik ini. Yang lain berpendapat bahwa Apple seharusnya lebih baik menguji pembaruan sistem operasi mereka terhadap aplikasi yang banyak digunakan sebelum rilis.
Saya tidak mengerti apa yang ada di pikiran developer. Sebuah method ditandai sebagai private. Didokumentasikan sebagai tidak boleh digunakan oleh developer. Dokumentasi lebih lanjut mengatakan bahwa menggunakannya dapat merusak aplikasi Anda dengan cara yang aneh sekarang atau di masa depan.
Situasi ini menyoroti ketegangan yang lebih luas dalam pengembangan perangkat lunak antara mengikuti pedoman resmi dan mencapai fungsionalitas yang diinginkan ketika public API tidak menyediakan solusi yang memadai.
Workaround dan Solusi
Beberapa perbaikan sementara telah muncul dari komunitas. Untuk aplikasi berbasis Chrome, pengguna dapat menerapkan perintah untuk menonaktifkan fitur autofill tertentu yang tampaknya berinteraksi buruk dengan masalah rendering. Namun, workaround ini datang dengan peringatan bahwa hal tersebut mungkin merusak fungsionalitas lain di masa depan.
Tim Electron telah mengakui masalah ini dan sedang mengerjakan perbaikan yang tepat yang menghapus override private API mereka sambil mempertahankan tampilan visual yang diharapkan pengguna. Apple juga telah diberitahu tentang masalah ini melalui sistem feedback mereka, meskipun mereka mempertahankan bahwa tanggung jawab terletak pada developer yang memilih menggunakan API yang tidak didukung.
Detail Teknis:
- Akar Masalah: Electron menimpa API AppKit
_cornerMask
yang bersifat privat - Sistem yang Terpengaruh: macOS 26 Tahoe RC pada Apple Silicon (M1, M4)
- Versi Electron: 37.3.1
- Solusi Sementara:
defaults write com.google.Chrome NSAutoFillHeuristicControllerEnabled -bool false
Dampak pada Pengguna dan Aplikasi
Degradasi performa mempengaruhi beberapa aplikasi produktivitas yang paling umum digunakan di macOS. Pengguna dengan model MacBook Pro M1 dan M4 melaporkan bahwa bahkan interaksi sistem dasar menjadi lambat ketika aplikasi seperti Discord atau VS Code terbuka dan tidak diminimalkan. Menariknya, meminimalkan aplikasi yang terpengaruh langsung mengatasi masalah performa, menunjukkan bahwa masalah ini secara khusus terkait dengan rendering jendela aktif.
Situasi ini berfungsi sebagai pengingat tentang risiko yang terlibat dalam menggunakan fitur sistem yang tidak terdokumentasi, bahkan ketika mereka menyediakan fungsionalitas yang tampaknya penting. Meskipun penggunaan private API oleh Electron dimaksudkan untuk meningkatkan pengalaman visual, hal tersebut pada akhirnya menciptakan ketergantungan yang rapuh yang rusak ketika Apple memperbarui arsitektur sistem mereka.
Referensi: Electron-based apps cause a huge system-wide lag on macOS 26 #48311