Ticker

6/recent/ticker-posts

Header Ads Widget

Chrome 89 での高度なメモリ管理とさらなるパフォーマンスの改善

この記事は Chrome プロダクト マネージャー、Mark Chang による Chromium Blog の記事 "Advanced memory management and more performance improvements in M89" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
機能の追加やセキュリティの改善をしながらパフォーマンスを向上させるには、深く継続的な注力が必要です。今年のシリーズ記事の初回となる今日の投稿では、Chrome で継続的に行われているパフォーマンス関連の作業について、技術的詳細を紹介します。今回のリリースでは、Chrome の中核深くまで手を入れ、メモリの割り当てや破棄の方法をアップグレードしています。また、現在の Chrome のスピードとメモリ効率をさらに向上するため、Chrome のビルド、パッケージング、実行の方法も更新しています。 

メモリ管理の改善

Windows 版の Chrome M89 では、ブラウザ プロセスで最大 22%、レンダラで 8%、GPU で 3% と、大幅なメモリの節約を実現しました。さらに、ブラウザの応答性が最大 9% 改善しています。これは、Google の高度なメモリ アロケータである PartitionAlloc を使って実現しました。このアロケータは、割り当ての低遅延性、空間効率、セキュリティの面で最適化されています。PartitionAlloc は、これまでにも、Google のレンダラ コードベースである Blink の内部で広く使われています。M89 より、Android 版と 64 ビット Windows 版の Chrome をアップグレードし、(malloc をインターセプトして)すべての場所で PartitionAlloc を使うようにしました。

現在の Chrome は、メモリの割り当て方法が改善されただけでなく、メモリの使用(と破棄)についてもさらにスマートになりました。現在の Chrome は、画面外の大きなイメージなど、フォアグラウンド タブが使っていないメモリを破棄することで、タブ 1 つにつき最大 100 MiB を回収します。人気サイトの 20% 以上がこのようなサイトに該当します。macOS 版の Chrome では、バックグラウンド タブのメモリ フットプリントも縮小しています。これは、他のプラットフォームでしばらく前から行っていることです。これにより、最大 8%、場合によっては 1 GiB 以上のメモリを節約できます。

さらに、タブ スロットリングに関する実データが集まるにつれて、バックグラウンドのタブの Apple Energy Impact スコアが最大 65% 改善しています。つまり、Mac は熱くならず、ファンも静かになっています。


ビルド、パッケージング、ランタイムの改善

Chrome for Android に特化して、あらゆる種類の Android デバイスにとって快適なブラウザを作るという、他にはない挑戦をしています。今回のリリースでは、パッケージングとランタイムの最適化を適用し、ポケットの中の Chrome のパフォーマンスを向上させています。


新しい Play 機能や Android 機能を使うと、Android で Chrome を再パッケージングできます。これにより、リソースの枯渇によるクラッシュが減少し、メモリ使用量は 5%、スタートアップ時間は 7.5%、ページ読み込みは最大 2% 改善しました。Android App Bundle を使うと、各ユーザーのデバイス構成に合わせて最適化した APK を Play ストアで生成できます。コードやリソースを分割 APK にパッケージングして、ベース APK とともにインストールすることもできます。また、Android O の機能である isolatedSplits を使うと、これらの分割機能をオンデマンドで読み込むことで、Chrome 全般のスタートアップ コストを削減できます。

最新の Android デバイス(Android Q 以降かつ 8 GB 以上の RAM)をお使いの方のために、Chrome を 64 ビットバイナリとして再ビルドしました。これにより、ページの読み込みが最大 8.5% 速く、スクロールや入力のレイテンシが 28% 少なくなり、さらに安定した Chrome を提供できるようになっています。

加えて、Android で Chrome の起動が 13% 速くなる機能、フリーズドライ タブを組み込んでいます。この機能により、軽量版のタブが保存されるようになり、このタブのサイズはスクリーンショットと同じくらいでありながら、スクロール、ズーム、リンクのタップをサポートします。スタートアップ時には、実際のタブがバックグラウンドで読み込まれるまでの間、このフリーズドライ タブを利用してページにすばやくアクセスできます。以下の動作例をご覧ください。



Google のチームは、あらゆるデバイスに最速、最強のブラウザをお届けするために、常に懸命に作業を進めています。ここでお知らせしたパフォーマンスの改善を提供できることをうれしく思います。今後もさらに改善を続けますので、ご期待ください。

すべての統計情報の出典 : Chrome クライアントから匿名で集計した実データ


Reviewed by Eiji Kitamura - Developer Relations Team


source https://developers-jp.googleblog.com/2021/04/chrome-89.html

Post a Comment

0 Comments