Perl 脚本如何知道它自己的内存占用?

Posted

技术标签:

【中文标题】Perl 脚本如何知道它自己的内存占用?【英文标题】:How can a Perl script know its own memory footprint? 【发布时间】:2010-10-12 08:45:29 【问题描述】:

我有一个长时间运行的 Perl 脚本,我想让它知道(并报告)它正在使用多少内存。我希望在 Linux 和 Windows 上都有这些信息,如果可能的话,在 Mac OS X 上也有。

【问题讨论】:

我不认为 Linux::Smapsgrep VmSize /proc/$$/status 在 Mac OS 下工作,因为依赖于 /proc 表。 【参考方案1】:

这些 Perl 模块可以帮助您:

窗口:Win32::Process::Memory Linux(可能还有 Mac OSX):Linux::Smaps

【讨论】:

【参考方案2】:

这将向您展示如何:

http://perldoc.perl.org/Devel/Peek.html

另外,http://perldoc.perl.org/perlguts.html

还有 perldebug 和 perldebguts 的手册页。

【讨论】:

【参考方案3】:

这是一种快速而肮脏且最重要的是无 CPAN 的方法。它适用于任何提供 /proc 文件系统的操作系统,即 Linux 和 Unix 衍生产品,包括 Mac OS X,以及 Windows 下的 Cygwin:

perl -e 'print qx grep VmSize /proc/$$/status ;'

【讨论】:

以上是关于Perl 脚本如何知道它自己的内存占用?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算一个对象占用的内存空间

如何找出我的 linux 应用程序的内存占用?

如何释放Python占用的内存

文件解压内存占用

怎么查看进程在内存中的地址?

如何获得一个存活的java对象的内存占用大小?