4

我正在尝试学习如何分析 perl 内存。

我有一个非常简单的 Perl hello-world 脚本,我想知道它在内存中的大小。

我使用 GTop 实用程序来测量内存(在Stas Beckman的 mod_perl 书中推荐)。GTop 提供了令我困惑的结果。

当我从命令行运行脚本时,GTop 说:7M。

当我在 下运行它时mod_perl,GTop 说:54M。

为什么这么多?!

为什么脚本内存增长如此之多mod_perl?或者也许我以错误的方式测量内存?你如何分析 perl 脚本内存?

这是脚本及其输出(我手动添加了逗号以轻松阅读数字)

  1. 从命令行运行

    > perl simple.pl
    
    大小:7,282688
    份额:2,027520
    差异:5,255168
    
  2. 在 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";
4

1 回答 1

7

我猜当你在 mod_perl 下运行你的脚本时,你会得到你脚本的内存使用量,加上 mod_perl 的,加上 apache 的。

另请参阅这些问题的答案:

于 2009-10-22T11:02:44.820 回答