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

发布于 2024-09-13 23:08:03 字数 81 浏览 5 评论 0原文

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

有人有任何想法吗?

I want to monitor memory usage when running a program in perl, so that if the memory used by the current program is more than a threshold, I apply approach A, otherwise, apply approach B.

Anyone has any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

深空失忆 2024-09-20 23:08:03

我从 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";  

I found this script from 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";  
戒ㄋ 2024-09-20 23:08:03

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

更新:由于您使用 Solaris,因此您肯定需要Solaris::Procfs

This is going to be highly OS specific. For Linux, I was able to find the CPAN module Sys::Statistics::Linux, which is able to read /proc and get you data about your current process. On the off-chance that you're running on Solaris, there's Solaris::Procfs. I couldn't find anything for Windows.

Update: Since you are on Solaris, you definitely want Solaris::Procfs.

坏尐絯℡ 2024-09-20 23:08:03

如果您想要稍微更便携的东西,请使用 GTopmod_perl 手册有使用示例

Use GTop if you want something slightly more portable. The mod_perl manual has usage examples.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文