Kandang bergerak pada kompositor, dan jendela yang tidak bergerak lagi mengembalikan alat di dalamnya

Performancekamo-internal
Dikirim
17 September 2026 pukul 19.43 UTC
Penulis
Kamo
Commit
905fba8

Segala sesuatu tentang jendela perangkat popup yang Moves - kembali berkemas baris, perdagangan tempat dengan strip klik, melangkah keluar dari baris belakang, tarik, tarik tarik, mengambil dan meninggalkan panel maksimal - adalah biaya pass tata letak dan React penuh redering dari setiap isi jendela terbuka per bingkai. Diukur di dermaga dengan delapan jendela terbuka (chrome tanpa kepala, sebelum / setelah, tiga berjalan masing-masing: - satu klik strip: 114 melewati tata letak - > 1, script waktu 87-104ms - > 44-52ms - a 40-move title-bar drag: 168 re-render dari KONENTS jendela - > 0, dan 86 layout paksa membaca - > 3 - lapisan backdrop- filter sebenarnya dicat: 8 dari 8 - > 5 dari 8 (hanya jendela yang berdiri di belakang) Setiap jendela berakhir pada pixel yang sama, dan setiap transisi perjalanan jalan yang sama di atas sama frame: dock- > float, float - > dock, dock- > memaksimalkan dan memaksimalkan - > dock semua sampel identik titik akhir, identik moving- jumlah frame dan identik langkah terbesar. Satu-satunya perbedaan piksel pada sisanya adalah subpixel antialias fase pada tepi glyph dalam jendela berlabuh - posisi yang sama, sama berat stroke (2649 vs 2643 tinta piksel), energi tepi yang sama (5.47 vs 5.53). Apa yang berubah: - Sebuah jendela berlabuh ditempatkan oleh 'translate' bukan 'kiri' / 'atas', dengan hover lift dilipat masuk Tiga rezim lainnya terus 'kiri' / 'top' dan tidak ada terjemahan sama sekali, dan hand- off adalah tepat karena semua 'kiri', 'top' dan 'translate' telah berbagi satu jam transisi: dua putaran pada satu kurva sum ke garis batas antara titik akhir. Secara paksa tidak ada 'will- change' - itu membeli apa-apa baik probe bisa melihat dan biaya lapisan kompositor per jendela untuk sesi. - 'RelayoutWindows' menjawab array SAME ketika tidak ada yang bergerak. Selalu menjawab jendela yang sama dan array segar, sehingga setiap satu dari lima puluh - aneh penelepon 'store.relayout ()' - termasuk scrollbar sync yang menjalankan 120ms setelah mutasi DOM manapun dalam dokumen - re-render setiap pembaca dari daftar jendela. - 'Use ToolWindowsStable ()': daftar jendela dengan geometri diabaikan. Tujuh alat tubuh, tiga jembatan yang belum dibaca dan pengamat prestasi semua membacanya untuk satu boolean masing-masing dan tidak memiliki pernah membaca sebuah kotak, sehingga drag tinggi-jahit- tidak lagi membuat setiap daftar pesan di layar. - 'Use Tool WindowActions ()': panggilan balik, oleh identitas, sehingga penelepon yang hanya pengiriman tidak dirender oleh jendela yang bergerak. - 'readViewport ()' memegang yang benar-tepi pengukuran antara peristiwa yang dapat mengubahnya. The Panggilan fase dalam ToolDock adalah flushing tata letak kotor enam puluh kali per detik selama drag. - 'DockedToolWinwindow' dan 'ToolWindowBody': batas memo per jendela dan alat, dengan setiap callback terikat sekali untuk kehidupan jendela. Dimozed 'MaximizedTabStrip', 'MaximizedTab', 'ChatNavigatorPanel', 'DockSnapIndicator', 'HexHeadSpring' dan 'HexHeadPopper' juga. - Cadar 'backdrop- filter' adalah 'visibility: hidden' ketika jendela tidak di belakang. Ini transisi secara diam-diam, sehingga memudar masih bermain secara penuh sebelum lapisan berhenti sedang dicat. - The hexhead throw loop tidak lagi kutu React negara per frame; jalur komet menjalankan mereka sendiri bingkai animasi dan menulis atribut SVG, sehingga sebuah throw berhenti merender seluruh panggung. - The title-bar menyapu kedatangan mengambil sendiri turun ketika selesai bukannya parkir off-frame untuk sesi, dan shell 's framer keyframes dimanipulasi - tiga dari lima cabang kembali sebuah keyframe ARRAY, sehingga re-render mid- swap digunakan untuk menghidupkan ulang cross- disable. 'dockRenderCost.testsx' pin semua itu sebagai penting; kasus identitas relayout gagal di HEAD.

Semua perubahan

Seperti apa yang Anda lihat pengiriman?

Semua itu tiba di ruang kerjamu sendiri. Mulailah dengan rencana gratis dan baca halaman ini lagi dalam sebulan.

Mulai Bebas SelamanyaTampilkan Harga