- 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.