如何在Solaris上监视Perl中的内存使用情况?

时间:2010-08-12 19:19:27

标签: perl solaris memory-management

我想在perl中运行程序时监视内存使用情况,这样如果当前程序使用的内存超过阈值,我应用方法A,否则,应用方法B.

任何人都有任何想法?

3 个答案:

答案 0 :(得分:3)

我从http://www.perlmonks.org/?node_id=235757找到了这个脚本:

#!/usr/bin/perl  

use Proc::ProcessTable;  

sub memory_usage {  
  my $t = new Proc::ProcessTable;  
  foreach my $got ( @{$t->table} ) {  
    next if not $got->pid eq $$;  
    return $got->size;  
  }  
}  


print 'memory: '. memory_usage()/1024/1024 ."\n";  

答案 1 :(得分:1)

这将是高度特定于操作系统的。对于Linux,我能够找到CPAN模块Sys::Statistics::Linux,它能够读取/proc并获取有关当前进程的数据。如果你在Solaris上运行的可能性很小,那就是Solaris::Procfs。我在Windows上找不到任何东西。

更新:由于您在Solaris上 ,因此您肯定需要Solaris::Procfs

答案 2 :(得分:1)

如果您想要更轻便的东西,请使用GTopmod_perl manual has usage examples