Brave ブラウザに取り組んでいるソフトウェア エンジニアは、ブラウザの広告ブロック エンジンを Rust で書き直し、その結果、速度が大幅に向上しました。
水曜日のブログ投稿で、Brave Software のパフォーマンス研究者 Andrius Aucinas 氏と主任科学者 Ben Livshits 氏は、Brave の組み込み広告ブロッカーを Mozilla が開発した Rust で書き直した結果、Web リクエストの処理に必要な時間が平均で 69 倍短縮されたと述べた。
以前のバージョンの広告ブロックエンジンは、既にC++で最適化されていました。今回の高速化は主にアルゴリズムの変更によるもので、Rustの低オーバーヘッドとメモリ安全性という利点も加わりました。
高速、安全、セキュアを目指して設計された次世代の C/C++ 風システム言語である Rust は、最近、正式リリースから 4 周年を迎えました。その間、毎年、Stack Overflow の年次開発者調査で最も愛されているプログラミング言語となっています。
「RustはC++に比べ、ネイティブコードのパフォーマンスを維持しながら、メモリとデータ競合の静的(コンパイル時)安全性を提供します」とBraveのCEO、ブレンダン・アイク氏はThe Registerへの電子メールで説明した。
「ほとんどのユーザーは広告ブロッカーのオーバーヘッドの削減による違いに気付かないだろうが、オーバーヘッドが 69 倍削減されたということは、デバイスの CPU が他の機能を実行する時間が大幅に増えたことを意味する」と Aucinas 氏と Livshits 氏は述べ、改訂されたエンジンのより深いブラウザ統合によって重複作業が減り、より多くのブロック ルールをサポートできるようになると指摘している。
誰かGoogleに教えて
Braveのエンジン改訂は、Chrome拡張機能エコシステムのセキュリティ強化のため、Chromium基盤に代替APIを導入する中で行われました。ただし、Manifest v3と呼ばれるこの変更には、ある程度のコストがかかると予想されています。
強力な同期webRequest
API はエンタープライズ環境に限定される予定であり、コンテンツのブロック、プライバシー、および Web リクエストを傍受してそれが必要かどうかを判断する機能に依存するその他の拡張機能に影響を及ぼします。
GoogleはChrome拡張機能のセキュリティ、プライバシー、速度の向上を目指しているとしているが、計画の詳細は未だ明らかにしていない。改訂されたAPIのプレビュー版は、早ければ7月末にも開発者向けChromeのCanaryビルドに実装される可能性がある。
Chromeの広告ブロッカー対策プレビューは7月下旬に予定されている。アドオン開発者が依然として不満を抱いている6つの理由
続きを読む
Google は、Chrome で大量のネットワーク リクエストを処理することでパフォーマンスが低下すると主張して、その計画を擁護しました。広告ブロッカーは、これらのリクエストを大規模なリストと照合して、通過させるべきでないものを判別します。
Aucinas 氏と Livshits 氏によると、Brave では「リクエストはブラウザのネットワーク スタックの奥深くでネイティブに処理される」ため、これは問題にならないとのことです。
それでもBraveは、uBlock OriginとGhosteryに着想を得たアプローチを採用し、広告ブロックエンジンを再構築したと述べています。平均リクエスト処理時間を4.6μs(0.0046ms)まで短縮したと彼らは主張しています。CliqzとGhosteryが最近実施したベンチマークテストでは、Ghostery拡張機能の平均リクエスト処理時間は7μs(0.007ms)でした。このテストでは、Braveの平均リクエスト処理時間は41μs(0.041ms)でした。
BraveでChrome拡張機能を使用しているユーザーにとって、GoogleのAPI変更により拡張機能の開発者がコードの修正を余儀なくされた場合、ブラウザのパフォーマンス向上はそれほど重要ではなくなる可能性があります。しかし先月末、CEOのブレンダン・アイク氏は、BraveはwebRequestとの下位互換性を維持する意向であると述べました。
同社によれば、Brave の月間アクティブユーザー数は現在 700 万人だという。®