古い記事
ランダムジャンプ
新しい記事
perl スクリプト動作中に内部からメモリ使用量を調べたい。
スクリプト終了後のプロファイルじゃなくて動作中に今すぐ知りたい。

こういうタスクでは Devel::MemUsed がいいみたいなんだけどなぜかモジュールが行方不明。CPAN からなくなっているみたい。

GTop というのがあった。普段よく使ってる top コマンドの Perl モジュール版と考えればよいみたい。なるほどなるほど。メモリ使用量の増加具合はタスクの前後でチェックすればOK。下記を参照。しかし利用環境にうまくインストールできなかったのでとりあえず断念。うーん、gnome…。

- モジュールをuseした際のメモリ使用量(増加量)を調べてみる (iandeth. )
http://iandeth.dyndns.org/mt/ian/archives/000624.html

妥協して変数のメモリ使用量だけでも分かればいいや。
そうであれば Devel::Size を使えば良いとのこと。
- Devel::Size - Perl変数のメモリ使用量を調べる
http://perldoc.jp/docs/modules/Devel-Size-0.58/Size.pod

おお、動いた動いた。

ソース:
use Devel::Size qw(size total_size);
my $foo = {a => [1, 2, 3]};
print size($foo)," ",total_size($foo), "\n";
$foo->{b} = {c =>  [4, 5]};
print size($foo)," ",total_size($foo), "\n";
shift @{$foo->{a}};
print size($foo)," ",total_size($foo), "\n";

実行結果:
119 267
142 549
142 529

巨大ハッシュの動作中モニタリングに使おう。
って、時間かかっちゃうかな。
あとで試してみる。