世界を動かす技術を、日本語で。

BraveがRust製の広告ブロックエンジンをFlatBuffersで改良し、メモリ使用量を75%削減

2026年1月6日原文(brave.com)

概要

BraveブラウザのRust製アドブロックエンジンが 大幅に最適化 され、 メモリ消費が75%削減。 このアップグレードは 全プラットフォーム で約45MBのメモリ節約を実現。 新しい FlatBuffersアーキテクチャ の導入による効果。 バッテリー寿命向上やマルチタスクの快適化 に寄与。 今後もさらなる最適化が v1.86 で予定。

Braveのアドブロックエンジン大幅刷新によるメモリ削減

  • Brave のアドブロックエンジンが Rustベース で全面的に刷新

  • メモリ消費75%削減、全ユーザーに恩恵

  • バッテリー寿命延長マルチタスクの快適化 を実現

  • Android、iOS、デスクトップ で約45MBのメモリ節約

  • 追加のアドブロックリスト利用時はさらに節約効果

    • v1.85 で最適化が実装済み、 v1.86 で追加改善予定
    • バージョン1.79.1181.85.118 の比較で、 162MB→104MB への削減を確認

FlatBuffersによるアーキテクチャ転換と最適化

  • FlatBuffers 導入で、 約10万件のアドブロックフィルタ を効率的に格納
  • 従来の Vecs、HashMaps、構造体 から、 ゼロコピーのバイナリ形式 へ移行
  • メモリ消費削減高速化 を両立
  • メモリ管理 の改善で、 スタック割り当てベクタ を利用し、 割り当て19%削減・ビルド時間15%短縮
  • フィルターマッチ速度13%向上、共通の正規表現パターンをトークナイズ
  • リソース共有 で、デスクトップでは 約2MBの追加節約
  • 内部リソース格納の効率化30%のメモリ削減

Brave独自のネイティブアドブロックの強み

  • Brave のアドブロックエンジンは ブラウザ本体に組み込み

  • プライバシーチーム による直接管理・最適化

  • 拡張機能型アドブロック では不可能な 深い最適化 を実現

  • Manifest V3 の影響を受けない堅牢な設計

  • 100万人以上のユーザー に向けた最先端のプライバシー提供

    • パフォーマンスチームとプライバシーチーム のクロスチーム協力による成果
    • モバイルや旧型ハードウェア でも大きな恩恵

関連記事

  • Braveの プライバシー機能アドブロック技術 に関する詳細
  • 最新の バージョンアップ情報最適化事例

Hackerたちの意見

45MiB節約することに、どれくらい感心すればいいのか分からないな。

45MiBはデフォルトの広告ブロック設定の分で、ブロックリストを増やすともっと増えるよ。最近の製品は効率を気にしないから、パフォーマンス改善は大歓迎だね。

最近の話?今のRAMの価格か、たくさんあるElectronアプリの肥大化のことを言ってるの?

そうそう。

広告ブロックのデータはリクエストごとにアクセスされるから、これは45MiBのCPUキャッシュってことだね。

すごくね。最近まで4.5MBの節約にどれだけ感動すべきか分からなかったからね。エマックスが「8メガバイトで常にスワッピング」っていうバックアクロニムになったの覚えてる? あれもそんなに昔じゃないよね。今じゃ8メガバイトなんて、クソみたいなnpmパッケージの一部として、ブラウザウィンドウに広告をぶち込むために使われるJSライブラリが取るサイズだし。

Braveの広告ブロックエンジンは、オープンソースの良い例だし、Rustでライブラリを共有するのも簡単だよ。CSSを解析してセレクタを評価するのにServoクレート(Firefoxでも使われてる)を使ってて、さらにそれ自体がcrates.ioでクレートとして公開されてるから、他の人が使いたいときに取り込めるんだ。

それって、node/npmみたいにサプライチェーン攻撃のリスクがあるってこと?それともcargoは何か違う管理方法(デューデリジェンスとか)をしてるのかな?

それにしても、Rustのエコシステムは実質的にランタイムライブラリの共有を潰したよね? すべてのプログラムがメンテナンス用の大きなシステムの構成要素じゃなくて、最終製品だっていう考え方で、開発時に指定された具体的な依存バージョンと静的にリンクされてるし。それに、同じアプリの複数のワーカープロセスが、このライブラリやUIツールキット、マルチメディアデコーダーみたいな共通コードをメモリで共有できないんだよね? 追記。実は、私の(Rust初心者だけど)考えをリスクを冒して共有するよ: https://shatsky.github.io/notes/2025-12-22_runtime-code-shar...

それってタブごとに45MiBなの?みんな笑ってるけど、今はタブがプロセスだからね…

最近は、サイトの分離のおかげで、各タブが十数個以上のプロセスになることもあるよね。

これが開発者たちがリソースを効率的に使うことを意識するきっかけになればいいな、特にブラウザではね。Rustがもっと書かれるほど、AIも人のためにそれをうまく書けるようになるし…楽観的でいたいな。

Hacker Newsで議論の続きを見る