分析perl程序的堆内存使用情况

时间:2011-07-11 01:57:30

标签: perl memory heap valgrind

我编写了一个perl程序来处理庞大的数据集。我试图在其内存使用方面描述其执行情况。尝试在小数据集上使用valgrind,但它会大大减慢执行速度。我正在寻找只是堆分析。 你们能提出一些建议吗?

4 个答案:

答案 0 :(得分:7)

当我使用Google和搜索字词'perl memory profile'时,第一个items指向Perl模块Devel::Size之一,作为发现内存使用情况的一种方式。还有潜伏的内存泄漏检测器模块。

答案 1 :(得分:5)

新的Devel::SizeMe模块提供了对perl程序或数据结构的堆内存使用情况的详细可见性。有一个blog post introducing Devel::SizeMe,包括与slidesscreencast对话的链接。

答案 2 :(得分:1)

使用Memchmark

答案 3 :(得分:1)

我们使用Devel::Leak。要完全工作,您需要一个调试编译的Perl,但即使没有它,您也可以在各个关键点计算并记录代码运行时分配的标量,散列和数组的数量。这足以消除我们的泄漏。