A Google letiltja a SegmentHeap funkciót a Chrome-ban a teljesítmény regressziója miatt
3 perc olvas
Publikálva
Olvassa el közzétételi oldalunkat, hogy megtudja, hogyan segítheti az MSPowerusert a szerkesztői csapat fenntartásában Tovább
Májusban a Microsoft kiadta a Windows 10 2020. májusi frissítését a Windows 10 felhasználók számára. Az új frissítés a SegmentHeap-pel érkezett, amely lehetővé tette a Win32-alkalmazások számára, hogy javítsák a RAM-használatot. Nem sokkal a megjelenés után a Microsoft bejelentette, hogy az új funkció segítségével sikerült csökkentenie az Edge RAM-használatát.
Júniusban a Google is beugrott és bejelentés a SegmentHeap elemet fogja használni a Chrome jegyzékében, amely kijavítja a Chrome memóriazavaró viselkedését. A funkció később volt engedélyezve Chrome v85-ben, de további tesztelés után a Google előrement, és letiltotta a funkciót a Chrome-on. Google neves hogy a funkció teljesítménybeli problémákat okozott, ezért le van tiltva.
A https://chromium-review.googlesource.com/c/chromium/src/+/2163163 véglegesítéssel a Windows >= 10.0.19041.0 (Windows 10 2004-es és újabb verziói) a chrome.exe számára a szegmenshalom használatát választja. a hagyatékkupacból. Ez azonban a WebXPRT3, a Speedometer2 és a JetStream2 teljesítményének regressziójához vezetett.
A Microsoft viszont neves gyakori, hogy az alkalmazások egyik erőforrást a másikra cserélik, így a csökkentett memóriahasználat a CPU-használat növekedését jelentette. A Microsoft továbbá azt mondta, hogy néhány fejlesztést lehetne tenni a hatás csökkentése érdekében.
Általános gyakorlat, hogy egyik erőforrást a másikra cserélik. Gyakrabban a megnövekedett memóriahasználat a csökkentett CPU használat érdekében. Ebben az esetben megnövekedett CPU-használatról van szó, ami drámaian csökkenti a memóriahasználatot, vagy pontosabban véglegesít. Ha megnézted a Bruce által végrehajtott kötelezettséget, megtaláltad volna azt a hibát, amely miatt a szegmenshalmot használja, és ez 100%-ban többletköltség volt az alacsony töredezettségi kupac böngészőfolyamatokban való használatából.
https://bugs.chromium.org/p/chromium/issues/detail?id=1014701#c9
Ennek ellenére van némi fejlesztés, amivel csökkenthető a hatás. Két területre oszlanak, de egyik sem könnyű.
1) Csökkentse a böngésző által végzett átmeneti kupackiosztások számát. Ez jelentős változtatásokat igényel a böngésző teljes kódbázisában.
2) Javítsa magának a szegmenshalom teljesítményét. Ezt csak a Windows csapata tudja megoldani, mi pedig vizsgáljuk a lehetőségeinket.Rövid távon ez egy jó kompromisszum az egyik erőforrás és a másik között, mivel a memória/commit használat jelentős fájdalommal jár a böngésző felhasználók számára.
Sajnos tegnap este Google határozott a SegmentHeap letiltásához. A GN zászló mögé került, így a csapat folytathatja a kísérletezést a funkcióval, így ez még nem jelenti az út végét.
Alapértelmezés szerint tiltsa le a szegmenshalmot, és adjon hozzá egy GN jelzőt a vezérléshez.
Aggodalomra ad okot, hogy a szegmenshalom költsége nem indokolja a költségét (lásd a crbug.com/1102281 webhelyet). Ez a CL alapértelmezés szerint letiltja, és ezt a funkciót egy GN jelző mögé helyezi, hogy továbbra is kísérletezzünk vele.
Keresztül: Techdows