Firefox web browser - Faster, more secure & customizable

MozillaはFirefoxのメモリ使用量削減の取り組みを継続しており、1週間おきにその成果を「MemShrink progress」として報告している。今回でこの報告も26週目を向かえた。ほぼ半年だ。Firefoxのメモリ使用量はこの半年で大きく削減された。用途不明メモリ領域の発見と対応といった大きな取り組みから、実に細かいメモリ使用量の削減作業が積み重なり成果をあげている。

26週目の報告ではDMDの統合とルールハッシュテーブルの初期化遅延の取り組み、about:memoryにおけるメモリ使用状況の詳細化などが報告されている。メモリ使用量の削減では「分類不明のメモリ領域(heap-unclassified)」を特定して、最終的にこの領域をゼロにすることがひとつの目標となる。まずは「何」に使われている、または、使われていないメモリ領域であるということを突き止めることが、メモリの使用量削減につながることになる。

DMDはValgrindをベースにしたトラッキング機能で、この機能を利用することでどこでメモリが確保されたのかをトラッキングできるようになる。今回これがFirefoxに統合されたことで、従来のようにパッチを当てずともオプション(--enable-dmd)を指定することでDMDに対応したFirefoxをビルドできるようになる。

いくつかのルールハッシュテーブルの初期化を遅延するように実装が変更された点も興味深い。説明によれば、これでブランクタブごとに45KBほどの削減が見込めるという。また、ほかのルールハッシュテーブルにも同様のパッチの内容が適用され、メモリ使用量の削減が実現されたと説明がある。数タブといった使用状況でも数MBほどのメモリ使用量縮小が実現されると説明がある。