有没有办法记录PERL中运行的最大内存使用量

lol*_*ity 1 memory perl

正如我所说,我想记录程序运行时使用的最大内存。

Suv*_*ker 5

Devel::Size仅一次测量一个特定数据结构的内存大小,以测量脚本中使用的所有数据结构的总内存大小。在类似Unix的系统上,Proc::ProcessTable为此提供了一个不错的API:

这是一个简单的脚本,将其与Devel :: Size进行了比较。

 #!/usr/bin/perl -w
use strict;
use Proc::ProcessTable;
use Devel::Size qw(size);


my @arr = ('A' .. 'M');
my $devel_size = size(\@arr);
print "With DEVEL::SIZE I'm $devel_size bytes big\n";


my $t = Proc::ProcessTable->new();

foreach my $p ( @{$t->table} ) {
    if($p->pid() == $$) {
    print "With Proc::ProcessTable I'm ", $p->size(), " bytes big.\n";
        last;
    }
}
Run Code Online (Sandbox Code Playgroud)

它给:

随着DEVEL::SIZE我是104字节大。
随着Proc::ProcessTable我5357568字节大。

注意:信息来源:http : //www.perlmonks.org/