Google Chromeチームは、公式ブログの3月11日(米国時間)の記事「Chromium Blog: Advanced memory management and more performance improvements in M89」で、3月2日にリリースされたChrome 89におけるメモリ管理およびパフォーマンスに対する取り組みについて紹介した。Chrome 89ではメモリの割り当ておよび破棄の方法が大幅に見直されたほか、パッケージングとランタイムの最適化も行われ、大幅な高速化とメモリ効率の向上が実現されているという。

  • Google Chrome バージョン89.0.4389.90 (64ビットWindows版)

    Google Chrome バージョン89.0.4389.90 (64ビットWindows版)

Chrome 89の注目すべき変更点に、メモリアロケーター「PartitionAlloc」の拡張がある。PartitionAllocは、セキュリティを保ちつつ、メモリ割り当ての待ち時間やスペース効率を低く抑えるために最適化された独自のメモリアロケーターだ。これまではレンダリングエンジンのBlink内で主に利用されていたが、Chrome 89以降ではAndroidおよび64ビット版Windowsにも拡張された。Googleによると、これらの取り組みによってWindows版におけるRAMの使用量が、ブラウザプロセスで最大22パーセント、レンダラーで8パーセント、GPUで3パーセント減少したという。

メモリの破棄についても改善されており、アクティブなタブで大きな画像などのリソースを画面外にスクロールした際に、そのメモリリソースを解放することによって、最大で100MiBのメモリ節約を実現したとのこと。またmacOS版では、他のOS版で実装されてきたように、バックグラウンドタブのメモリ管理を改善したことで、最大で8%のメモリが節約できるようになったとのことだ。

Android版のChromeにも興味深い改善が行われている。最新のAndroidおよびPlayストアでは、ユーザーの特定のデバイス向けに最適化されたAPKを提供できるようになっている。Chrome 89では、「Android App Bundles」と呼ばれる機能を利用することで、それぞれのデバイス向けに最適なChromeパッケージがインストールされるようになった。さらに、Android Oの新機能である「isolatedSplits」を利用することによって、初期は最小限の機能で高速に起動し、その後オンデマンドで必要な機能が読み込まれるようになっており、全体的な起動コストの削減につながっているという。

起動時間の短縮に関しては、「フリーズドライタブ(Freeze-Dried Tabs)」と呼ばれる新機能も加わった。これはスクロール、ズーム、およびリンクのタップをサポートした軽量サイズのタブで、ページにアクセスした際に、実際のタブがバックグラウンドで読み込まれている間に代替としてこのフリーズドライタブを表示しておくことによって、すばやくページにアクセスできるようになっている。フリーズドライタブの利用によって、最大で13%高速に起動するようになったという。