Das Dock bewegt sich auf dem Kompositor, und ein Fenster, das sich bewegt, gibt das Werkzeug darin nicht mehr wieder ab

Performancekamo-internal
Verschifft
17. September 2026 um 19:43 UTC
Autor
Kamo
Ausschuss
905fba8

Alles über ein Popup-Tool-Fenster, das MOVES - Neupacken der Zeile, Handel Plätze mit einem Streifen Klicken Sie, Schritt aus einer Reihe hinter, ein Drag, eine Naht ziehen, wobei und verlassen Sie die maximierte Scheibe - kostete einen Layout-Pass und eine vollständige React Re-Renderung des Inhalts jedes geöffneten Fensters pro Frame. Gemessen im Dock Gurtzeug mit acht Fenstern geöffnet (kopflos Chrome, before/after, drei Runs je): - ein Streifenklick: 12-14 Layout geht - 1, Skript Zeit 87-104ms - 44-52ms - ein 40-Schienen-Titel-Bar-Drag: 168 Re-Render von Fenstern CONTENTS - 0, und 86 erzwungene Layout liest - 3 - Hintergrund-Filterschichten tatsächlich gemalt: 8 von 8 - 5 von 8 (nur die Fenster hinten stehen) Jedes Fenster endet am gleichen Pixel, und jeder Übergang geht den gleichen Weg über den gleichen Weg Rahmen: Dock-Efloat, Float-Edock, Dock-"Maximiert und maximiert-"dock alle abgetastet identisch Endpunkte, identische Bewegungsrahmen-Zahlen und identischer größter Schritt. Der einzige Pixelunterschied bei Rest ist die Subpixel antialiasing Phase auf Glyphenkanten in angedockten Fenstern - gleiche Positionen, gleiche Positionen Schlaggewicht (2649 vs 2643 Tintenpixel), gleiche Kantenenergie (5,47 vs 5.53). Was sich geändert hat: - Ein angedocktes Fenster wird durch "translate" anstelle von "left"/"top" platziert, wobei der Schwebelift eingeklappt ist. Die anderen drei Regime halten "left"/"top" und überhaupt nicht übersetzen, und die Übergabe ist genau weil alle "left", "top" und "translate" bereits eine Übergangsuhr teilen: zwei Rampen auf einer Kurve sum, um die Rampe zwischen den Endpunkten. Bewusst kein "will-change" - es kaufte nichts Beide Sonden konnten eine Compositorschicht pro Fenster für die Sitzung sehen und kosten. - "RelayoutWindows" beantwortet das SAME-Array, wenn sich nichts bewegt hat. Es antwortete immer die gleichen Fenster und eine frische Reihe, so dass jeder der fünfzehn-ungerade Anrufer von .store.relayout() - einschließlich der scrollbar synchron, der 120ms nach jeder DOM-Mutation irgendwo im Dokument läuft - re-rendered jeder Leser der Fensterliste. - "ToolWindowsStable() ": die Fensterliste mit ihrer Geometrie ignoriert. Die sieben Werkzeugkörper, die drei ungelesene Brücken und der Leistungsbeobachter alle lesen es für einen booleschen Stück und keiner hat jemals ein Feld gelesen, so dass ein Höhen-Ähn-Dock nicht mehr jede Nachrichtenliste auf dem Bildschirm wieder ausschreibt. - "ToolWindowActions() ": die Rückrufe, nach Identität, so dass ein Anrufer, der nur sendet, nicht Wieder-rendered durch ein Fenster bewegen. - "readViewport() " hält seine rechtsgerichtete Messung zwischen den Ereignissen, die es ändern können. Die Render-Phasen-Aufruf in ToolDock spülte ein schmutziges Layout 60 Mal pro Sekunde während eines Drag. - "DockedToolWindow" und "ToolWindowBody": eine Memo-Grenze pro Fenster und pro Werkzeug, mit jedem Rückruf gebunden einmal für das Leben des Fensters. Memoized "MaximizedTabStrip", "MaximizedTab", Auch "ChatNavigatorPanel", "DockSnapIndicator", "HexHeadSpring" und "HexHeadPopover". - Der "Backdrop-Filter" des Streifenschänders ist "Sichtbarkeit: versteckt", wenn sich das Fenster nicht dahinter befindet. Es Übergänge diskret, so dass die Fade noch in vollem Umfang spielt, bevor die Schicht nicht mehr gemalt wird. - Die Hexhead-Wurfschleife tickt nicht mehr React Zustand pro Frame; die Kometenpfade laufen ihre eigenen Animationen Frame und schreiben SVG-Attribute, so dass ein Wurf stoppt Wieder-Rendering der gesamten Bühne. - Die Titel-Bar Ankunft Sweep nimmt sich nach unten, wenn es endet, anstatt Parkplatz off-frame für die Sitzung, und die Schale Framer Keyframes sind abwendig - drei der fünf Zweige geben eine keyframe ARRAY, so dass ein Re-Render Mid-Swap verwendet, um die Cross-Dissolve neu zu starten. Der Fall von "SordoRenderCost.test.tsx" heftet alles als Zähler an; der Fall des Staffelunges scheitert an HEAD.

Alle Änderungen

Wie, was Sie sehen Versand?

Alles kommt in Ihrem Arbeitsbereich für sich. Starten Sie mit dem kostenlosen Plan und lesen Sie diese Seite in einem Monat wieder.

Free Forever startenPreisgestaltung anzeigen