パフォーマンスの低下により、GoogleはChromeでSegmentHeapを無効にします

読書時間アイコン 3分。 読んだ


読者は MSpoweruser のサポートを支援します。私たちのリンクを通じて購入すると、手数料が発生する場合があります。 ツールチップアイコン

MSPoweruser の編集チームの維持にどのように貢献できるかについては、開示ページをお読みください。 続きを読む

Google Chrome

10月、マイクロソフトはWindows2020ユーザー向けのWindows10 May32Updateをリリースしました。 新しいアップデートには、WinXNUMXアプリがRAM使用量を改善できるようにするSegmentHeapが付属しています。 リリース後すぐに、Microsoftは新機能を使用してEdgeのRAM使用量を削減できたと発表しました。

XNUMX月には、Googleも時流に乗って 発表の ChromeのマニフェストでSegmentHeapを使用して、Chromeのメモリ占有動作を修正します。 機能は後でした 使用可能 Chrome v85ではありますが、さらにテストした後、Googleは先に進み、Chromeの機能を無効にしました。 グーグル 注意 この機能がパフォーマンスの問題を引き起こしていたため、無効になっていること。

コミットhttps://chromium-review.googlesource.com/c/chromium/src/+/2163163が着陸すると、Windows> = 10.0.19041.0(Windows 10バージョン2004以降)は、代わりにセグメントヒープを使用するようにchrome.exeを選択します。レガシーヒープの。 ただし、これにより、WebXPRT3、Speedometer2、およびJetStream2のパフォーマンスが低下しました。

一方、マイクロソフトは、 注意 アプリがXNUMXつのリソースを別のリソースと交換するのは一般的であるため、メモリ使用量の削減はCPU使用率の増加を意味します。 Microsoftはさらに、影響を減らすためにいくつかの改善を行うことができると述べた。

あるリソースを別のリソースと交換するのが一般的な方法です。 多くの場合、CPU使用率を減らすために、メモリ使用量が増加します。 この場合、CPU使用率が増加し、メモリ使用量が大幅に削減されるか、より正確にコミットされます。 ブルースが行ったコミットを見ると、彼がセグメントヒープを使用する原因となったバグが見つかりました。これは、ブラウザープロセスでの断片化の少ないヒープの使用による100%のオーバーヘッドでした。

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

とはいえ、影響を減らすためにできる改善点がいくつかあります。 それらはXNUMXつの領域に分類されますが、どちらも簡単ではありません。

1)ブラウザが行う一時的なヒープ割り当ての量を減らします。 これには、ブラウザのコードベース全体で大幅な変更が必要になります。
2)セグメントヒープ自体のパフォーマンスを向上させます。 これはWindowsチームのみが対処でき、オプションを調査しています。

短期的には、メモリ/コミットの使用はブラウザユーザーにとって重大な問題点であるため、これはあるリソースと別のリソースの適切なトレードオフです。

残念ながら、昨夜のグーグル 決定しました 先に進み、SegmentHeapを無効にします。 チームが機能の実験を続けることができるように、それはGNフラグの後ろに移動されたので、それは道の終わりではありません。

デフォルトでセグメントヒープを無効にし、それを制御するためにGNフラグを追加します。

セグメントヒープのコストがそのコストを正当化しないという懸念があります(crbug.com/1102281を参照)。 このCLはデフォルトで無効にし、この機能をGNフラグの後ろに置いて、実験を続けられるようにします。

経由: Techdows

トピックの詳細: グーグル, Google Chromeの, Google Chrome Canary, セグメントヒープ