我正在尝试学习如何分析 perl 内存。
我有一个非常简单的 Perl hello-world 脚本,我想知道它在内存中的大小。
我使用 GTop 实用程序来测量内存(在Stas Beckman的 mod_perl 书中推荐)。GTop 提供了令我困惑的结果。
当我从命令行运行脚本时,GTop 说:7M。
当我在 下运行它时mod_perl
,GTop 说:54M。
为什么这么多?!
为什么脚本内存增长如此之多mod_perl
?或者也许我以错误的方式测量内存?你如何分析 perl 脚本内存?
这是脚本及其输出(我手动添加了逗号以轻松阅读数字)
从命令行运行
> perl simple.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";