Google deaktiviert SegmentHeap auf Chrome aufgrund von Leistungseinbußen

Symbol für die Lesezeit 3 Minute. lesen


Leser unterstützen MSpoweruser. Wir erhalten möglicherweise eine Provision, wenn Sie über unsere Links kaufen. Tooltip-Symbol

Lesen Sie unsere Offenlegungsseite, um herauszufinden, wie Sie MSPoweruser dabei helfen können, das Redaktionsteam zu unterstützen Lesen Sie weiter

Google Chrome

Im Mai hat Microsoft das Windows 10 Mai 2020 Update für Windows 10-Benutzer veröffentlicht. Das neue Update kam mit SegmentHeap, das es Win32-Apps ermöglichte, die RAM-Nutzung zu verbessern. Kurz nach der Veröffentlichung gab Microsoft bekannt, dass es mit der neuen Funktion gelungen ist, die RAM-Nutzung auf Edge zu reduzieren.

Im Juni sprang auch Google auf den fahrenden Zug auf und angekündigt Es wird SegmentHeap im Chrome-Manifest verwenden, wodurch das Speicher-Hogging-Verhalten von Chrome behoben wird. Das Feature kam später freigegeben in Chrome v85, aber nach weiteren Tests hat Google die Funktion in Chrome deaktiviert. Google bekannt dass die Funktion Leistungsprobleme verursachte und daher deaktiviert wurde.

Wenn Commit https://chromium-review.googlesource.com/c/chromium/src/+/2163163 gelandet ist, wird Windows >= 10.0.19041.0 (Windows 10 Version 2004 und höher) chrome.exe dafür entscheiden, stattdessen den Segment-Heap zu verwenden des Altlastenhaufens. Dies führte jedoch zu Leistungsrückgängen für WebXPRT3, Speedometer2 und JetStream2.

Microsoft dagegen bekannt dass es üblich ist, dass eine App eine Ressource gegen eine andere tauscht, sodass die reduzierte Speichernutzung eine Erhöhung der CPU-Auslastung bedeutete. Microsoft sagte weiter, dass einige Verbesserungen vorgenommen werden könnten, um die Auswirkungen zu verringern.

Es ist gängige Praxis, eine Ressource gegen eine andere einzutauschen. Häufiger ist es eine erhöhte Speicherauslastung für eine reduzierte CPU-Auslastung. In diesem Fall ist es eine erhöhte CPU-Auslastung für eine drastisch reduzierte Speichernutzung oder genauer gesagt ein Commit. Wenn Sie sich den von Bruce vorgenommenen Commit angesehen hätten, hätten Sie den Fehler gefunden, der ihn dazu veranlasste, den Segment-Heap zu verwenden, und das war ein 100%iger Overhead durch die Verwendung des Low-Fragmentation-Heaps in Browserprozessen.

https://bugs.chromium.org/p/chromium/issues/detail?id=1014701#c9

Allerdings gibt es einige Verbesserungen, die getan werden können, um die Auswirkungen zu verringern. Sie fallen in zwei Bereiche, aber keiner ist einfach.

1) Reduzieren Sie die Menge an vorübergehenden Heap-Zuweisungen, die der Browser vornimmt. Dies erfordert erhebliche Änderungen in der gesamten Browser-Codebasis.
2) Verbessern Sie die Leistung des Segmentheaps selbst. Dies kann nur vom Windows-Team behoben werden, und wir prüfen unsere Optionen.

Kurzfristig ist dies ein guter Kompromiss zwischen einer Ressource und einer anderen, da die Speicher-/Commit-Nutzung ein erheblicher Schmerzpunkt für Browserbenutzer ist.

Leider gestern Abend Google entschieden um fortzufahren und SegmentHeap zu deaktivieren. Es wurde hinter eine GN-Flagge verschoben, damit das Team weiter mit der Funktion experimentieren kann, damit dies nicht das Ende des Weges ist.

Deaktivieren Sie den Segment-Heap standardmäßig und fügen Sie ein GN-Flag hinzu, um ihn zu steuern.

Es gibt einige Bedenken, dass die Kosten des Segment-Heaps seine Kosten nicht rechtfertigen (siehe crbug.com/1102281). Diese CL deaktiviert sie standardmäßig und setzt diese Funktion hinter ein GN-Flag, damit wir weiter damit experimentieren können.

Via: Techdows

Mehr zu den Themen: Google, Google Chrome, Google Chrome Kanarienvogel, Segmenthaufen

Hinterlassen Sie uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *