February 10, 2006

Firefoxのメモリリーク解析ツール:leak-gauge

えむもじらさんで紹介されていた。メモリリークを解析してくれるツールleak-gaugeを使ってみました。

ナイトリービルドやトランクビルドにはメモリー状態を記録してくれる機能があるそうで、当然このツールはリリースビルドでは使用できません。
とりあえず必要なものは、leak-gauge(JavaScriptバージョン)これを適当なフォルダーに保存してください。こちらの使い方をご紹介します。
この他にPerlのバージョンもあるのですが、こちらは使用してません。

VAR=value
NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5
NSPR_LOG_FILE=nspr.log

とりあえず使用する際(Windowsの場合)
上記のような環境設定を設定しなければなりません。そこで下記のようなバッチファイルを作成しFirefox1.6a2を起動

set VAR=value
set NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5
set NSPR_LOG_FILE=nspr.log
SET MOZ_NO_REMOTE=1
cd "d:\Program Files\Firefox 1.6"(トランクを置いてあるフォルダです。)
start /wait firefox.exe -p trunk (トランク用のプロファイルです。)

これでFirefoxを動作させて終了すると、バッチファイルを置いたフォルダーにnspr.logというファイルが作成されます。
そして普通にFirefoxを起動(これはリリースビルドでもかまいません)、先ほど保存したleak-gaugeをファイルから開いてください。
(ブックマークにでも登録しておけば簡単に開くことが出来ます。)
下のほうにリンクenter the filenameがあるのでそこをクリックしさっきのnspr.logを放り込んでください。どこでメモリーリークが起きてるかを知らせてくれます。
といっても原因までは分かりません。原因がどこにあるかは特定の動作をさせて絞り込んでいく必要があるみたいです。
自分が作ってる拡張ぐらいはチェックしとこう・・・。

Get Firefox!
この記事へのコメント
コメントを書く
※Name:

Email Address:

URL:

※Comments:

この記事へのトラックバック