perl メモリのプロファイルを作成する方法を学ぼうとしています。
非常に単純な Perl の hello-world スクリプトがあり、そのメモリ内のサイズを知りたいです。
GTopユーティリティを使用してメモリを測定します(Stas Beckmanによるmod_perlブックで推奨)。GTop は、私を混乱させる結果を提供します。
コマンドラインからスクリプトを実行すると、GTop は次のように表示します: 7M.
で実行するとmod_perl
、GTop は次のように表示します: 54M.
なんでそんなに!?
なぜスクリプトのメモリが で大きくなるのmod_perl
ですか? それとも、間違った方法でメモリを測定していますか? perl スクリプトのメモリをどのようにプロファイリングしますか?
これがスクリプトとその出力です(数字を読みやすくするために手動でカンマを追加しました)
コマンドラインから実行
> perl シンプル.pl サイズ: 7,282688 シェア: 2,027520 差分: 5,255168
mod_perl で実行
サイズ: 54,878208 シェア: 4,661248 差分: 50,216960
スクリプト simple.pl
#!/usr/bin/perl
use strict;
use warnings;
use CGI ();
my $cgi = CGI->new;
print $cgi->header('text/plain');
use GTop;
print "Hello, world!\n";
my $m = GTop->new->proc_mem($$);
print "size: ".$m->size."\n";
print "share: ".$m->share."\n";
my $diff = $m->size - $m->share;
print "diff: $diff\n";