Braveが広告ブロックエンジンを全面刷新、メモリ消費量を75%削減

この記事は、Braveブラウザの新しいプライバシー機能を紹介するシリーズの36回目の記事です。今回は、シニア・スタッフ・エンジニアのMikhail Atuchinとシニア・ソフトウェア・エンジニアのPavel Beloborodov、そしてスタッフ・アドブロック・エンジニアのAnton Lazarevによる対応を紹介します。この記事はプライバシー・セキュリティ・VPのShivan Kaul Sahibによって書かれた記事の日本語訳です。

Braveは、Rustベースの広告ブロックエンジンを全面的に刷新し、メモリ消費量を75%削減しました。この対応によりバッテリー寿命の向上とよりスムーズなマルチタスク処理が実現し、Braveブラウザは標準設定で全プラットフォーム(Android、iOS、デスクトップ)において約45MBのメモリを節約できるようになり、追加の広告ブロックリストを有効にしているユーザーはさらに大きな効果が得られます。これらのパフォーマンス向上はBrave v1.85で利用可能となっており、v1.86ではさらなる最適化が予定されています。

Braveのバージョン1.79.118と1.85.118のスクリーンショット比較。広告ブロックエンジンが含まれているブラウザプロセス全体のメモリ消費量が減少していることを示しています。
Braveのバージョン1.79.118と1.85.118のスクリーンショット比較。広告ブロックエンジンが含まれているブラウザプロセス全体のメモリ消費量が減少していることを示しています。

昨年6月10月にお知らせしたとおり、私たちはadblock-rustエンジンを継続的にリファクタリングし、コンパクトで効率的なストレージ形式であるFlatBuffersを使用することで、この大きなメモリ削減のマイルストーンを達成しました。このアーキテクチャの移行により、標準設定で搭載されている約10万件の広告ブロックフィルターを、標準的なヒープ割り当てのRustデータ構造(Vecs、HashMaps、structsなど)から、特殊なゼロコピーバイナリ形式へと移行することができました。

その過程で、私たちはいくつかの重要なパフォーマンス最適化を行っています(一部はv1.86で提供予定です)。

  1. メモリ管理:スタック割り当てベクターを使用することで、メモリ割り当てを19%削減し、ビルド時間を約15%改善しました。
  2. マッチングスピード:共通する正規表現パターンをトークン化することで、フィルターマッチングのパフォーマンスを13%向上させました。
  3. リソース共有:広告ブロックエンジンのインスタンス間でリソースを共有することで、デスクトップ環境で約2MBのメモリを節約しました。
  4. ストレージ効率化:内部リソースストレージのメモリを30%最適化しました。

45MB以上のメモリ削減はブラウザパフォーマンスの世界において重要なマイルストーンであり、モバイルや古いハードウェアを使用するユーザーにとって大きな改善です。Braveは攻撃的な広告やトラッカーをブロックすることですでにブラウジングのパフォーマンスを向上させていますが、今回の新たなエンジニアリング努力により、私たち自身の組み込み保護機能が可能な限り軽量で目立たないものになりました。他のブラウザの広告ブロック機能とは異なり、Braveの広告ブロックエンジンはブラウザに組み込まれており、Braveのプライバシーチームによってメンテナンスされています。このような根本的な最適化は、ブラウザ拡張機能のAPIやサンドボックスによって制限される拡張機能ベースのブロッカーでは不可能です。このネイティブアーキテクチャにより、Brave独自の広告・トラッカーブロック機能はManifest V3の影響を全く受けません。

このパフォーマンス向上は、パフォーマンスチームとプライバシーチームによる数ヶ月にわたる綿密なチーム横断的なエンジニアリング作業の集大成です。これはブラウザの効率性における大きな飛躍を示しており、1億を超えるユーザーに最高クラスのプライバシー保護を提供し続けることを保証します。

Related articles