Google onemogoči SegmentHeap v Chromu zaradi regresije učinkovitosti

Ikona časa branja 3 min. prebrati


Bralci pomagajo pri podpori MSpoweruser. Če kupujete prek naših povezav, lahko prejmemo provizijo. Ikona opisa orodja

Preberite našo stran za razkritje, če želite izvedeti, kako lahko pomagate MSPoweruser vzdrževati uredniško skupino Preberi več

Google Chrome

Maja je Microsoft izdal posodobitev za Windows 10 May 2020 za uporabnike operacijskega sistema Windows 10. Nova posodobitev je prišla s SegmentHeap, ki je aplikacijam Win32 omogočila izboljšanje uporabe RAM-a. Kmalu po izdaji je Microsoft objavil, da mu je z novo funkcijo uspelo zmanjšati porabo RAM-a na Edge.

Junija je tudi Google skočil na prepir in razglasitve uporabljal bo SegmentHeap v Chromovem manifestu, kar bo popravilo Chromovo vedenje prepolnjevanja pomnilnika. Funkcija je bila kasneje omogočena v Chromu v85, vendar je po nadaljnjem testiranju Google nadaljeval in onemogočil funkcijo v Chromu. Google opozoriti da je funkcija povzročala težave z zmogljivostjo in je bila zato onemogočena.

Z objavo https://chromium-review.googlesource.com/c/chromium/src/+/2163163 bo Windows >= 10.0.19041.0 (Windows 10 različica 2004 in novejše) omogočil chrome.exe za uporabo kopice segmentov kopice zapuščine. Toda to je privedlo do regresije zmogljivosti za WebXPRT3, Speedometer2 in JetStream2.

Microsoft pa po drugi strani opozoriti da je običajno, da aplikacija zamenja en vir za drugega, zato je zmanjšana poraba pomnilnika pomenila povečanje porabe CPE. Microsoft je še dejal, da bi bilo mogoče narediti nekaj izboljšav za zmanjšanje vpliva.

Običajna praksa je menjati en vir za drugega. Pogosteje je to povečana poraba pomnilnika za zmanjšano porabo CPE. V tem primeru gre za povečano porabo CPE za dramatično zmanjšano porabo pomnilnika ali natančneje za potrditev. Če bi pogledali potrditev, ki jo je naredil Bruce, bi našli napako, ki ga je pripeljala do uporabe kopice segmentov, in to je bila 100-odstotna škoda zaradi uporabe kopice z nizko fragmentacijo v procesih brskalnika.

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

Kljub temu je mogoče narediti nekaj izboljšav, da bi zmanjšali učinek. Sodijo na dve področji, a nobeno ni enostavno.

1) Zmanjšajte količino prehodnih dodelitev kopice, ki jih naredi brskalnik. To bo zahtevalo pomembne spremembe v celotni kodni zbirki brskalnika.
2) Izboljšajte zmogljivost samega kopice segmenta. To lahko reši samo ekipa za Windows in preučujemo naše možnosti.

Kratkoročno je to dober kompromis enega vira za drugega, saj je uporaba pomnilnika/obvezovanja pomembna boleča točka za uporabnike brskalnikov.

Žal sinoči Google odločil da nadaljujete in onemogočite SegmentHeap. Prestavljena je bila za zastavo GN, tako da lahko ekipa še naprej eksperimentira s funkcijo, tako da še ni konec poti.

Privzeto onemogočite kopico segmentov in dodajte zastavico GN, da jo nadzirate.

Obstaja nekaj skrbi, da stroški kopice segmentov ne upravičijo njegovih stroškov (glejte crbug.com/1102281). Ta CL ga privzeto onemogoči in to funkcijo postavi za zastavico GN, da lahko nadaljujemo z eksperimentiranjem z njo.

Via: Techdows

Več o temah: google, Google Chrome, Canary Google Chrome, kup segmenta

Pustite Odgovori

Vaš e-naslov ne bo objavljen. Obvezna polja so označena *