Firefox web browser - Faster, more secure & customizable

Firefoxにおけるメモリ使用量削減の取り組みが続けられている。最新の成果として、メモリの使用状況に応じて振る舞いを変える機能が取り込まれたことが「ADAPTIVE MEMORY BEHAVIOUR」として報告された。今のところWindows向けの実装のみが提供されており、Mac OS X、Linux、Android向けの実装は今後の課題とされている。

今回実装されたのはVirtualAlloc()をラッピングしてメモリの使用量に応じてメモリ圧縮のイベントを発生させるというもの。メモリの確保などのタイミングで仮想メモリと物理メモリの使用状況を測定。値がしきい値を超えている場合にはメモリ圧縮イベントを発生させるという仕組みになっている。

しきい値としては次の3つの値が用意されており、about:config経由で変更できるようになっている。

  • memory.low_virtual_memory_threshold_mb - デフォルトは128MBに設定されている。仮想メモリの使用量がこの値を超えるとメモリ圧縮が実施される。
  • memory.low_physical_mem_threshold_mb - デフォルトは0。物理メモリの使用量で同じことをする指定だが、今のところ無効化されている。
  • memory.low_physical_memory_notification_interval_ms - デフォルトは10秒。1度メモリ圧縮処理を実施したらこの秒数は待たなければ次の処理は実施されない。

Firefox 12ナイトリーに実装されたアダプティブメモリ処理の調整値

これらの値はまだ控えめなものとされており、今後の試用を経て調整されることになると見られる。

about:memoryによる表示も改善が続けられている

より多くの情報を表示するようになっている

about:memoryで表示されるメモリ消費状況もより細かくチェックできるように取り組みが継続されている。さまざまなプラットフォーム(PC、スマートフォン、タブレットデバイス)やOSに対して適切な処理をする単一の方法や値をヒューリスティックに模索するよりも、今回実装されたメモリ圧縮処理のように環境の状況に応じて処理を実施する方法が良いだろうという説明もある。