2010/12/08

NILScriptのプロセス自身のメモリ使用量を取得する

大量のデータを処理するスクリプトを作っていてメモリ使用量が心配になったときや、メモリの解放漏れが無いか確かめたいときなどには、スクリプトのプロセスのメモリ使用状況を調べたくなります。
そんなときいちいちタスクマネージャでスクリプトのプロセスを探してメモリ使用量を調べるのは面倒です。

NILScriptのProcessオブジェクトには、プロセスのメモリ使用状況を取得する機能があり、「Main.process」で現在スクリプトを実行しているプロセスをProcessオブジェクトとして得ることができるので、自プロセスのメモリ使用状況を簡単に取得できます。

例えば、以下のようにすれば、Imageオブジェクトを生成して解放したときにメモリの解放漏れがあるかどうかが分かります。
use('Image');
for(var i=0;i<100;i++){
    try{
        var img=Image.create(1920,1080);
    }finally{
        img.free();
    }
}
println(Main.process.pagefileUsage);

なお、Imageオブジェクトのfree()が正しく全てのリソースを解放していなかった件については、先ほど修正しました。

0 件のコメント:

コメントを投稿