Firefox3のメモリ改善方法

http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/
Firefox3のメモリ改善方法が書いてあったので読んでみた。
要約すると以下の通り。

  • Gecko 1.8.1→Gecko1.9への変更の際にメモリ管理の改善を行った
  • メモリフラグメンテーション(メモリ空間上に小さなサイズの再利用しにくいメモリのスキマができてしまうこと)がパフォーマンス低下を引き起こしていた
  • メモリの割り当てにjemallocを利用するように書き換えたこれでメモリの利用量を22%削減できた
  • 循環参照によるメモリーリークを今までは手作業で修正してきたが、定期的に循環参照されているオブジェクトを開放する機構を作った(これってどうやって利用されていないオブジェクトを判断するのだろう?)
  • キャッシュの改善を行った
    • 戻る/進むのためのキャッシュを30分でExpireさせた
  • 画像管理方法を変えた
    • 今までは閲覧していないタブの画像なども含めてjpeg/gif/pngファイルを解凍してメモリ空間上に保存していた
    • そのため100KB程度のjpegがメモリ上は数MB程度の容量を消費していた
    • 画像を解凍してメモリに保存しておく範囲を絞り込んだところメモリの消費量を劇的に下げることができた
  • モリーリークを退治した。400以上のバグを修正した
  • 検証したところInternet Explorer 7が500MB程度のメモリを消費しているところFirefox 3は100MB程度に抑えることができた

Firefox3正式リリース楽しみです。