【问题标题】:Understanding Devel::Leak了解开发::泄漏
【发布时间】:2015-01-06 17:44:43
【问题描述】:

下面是我正在使用的一段代码及其输出。

my $handle;
my $enterCount = Devel::Leak::NoteSV($handle);
print "$date entry $enterCount";
<<<< my piece of code >>>
my $leaveCount = Devel::Leak::CheckSV($handle);
print "$date exit $leaveCount"; 

输出:

1) 
Mon 11/10 02:34:55 entry 383852
Mon 11/10 02:35:03 exit 486726

2) 
Mon 11/10 04:00:31 entry 383852
Mon 11/10 04:00:39 exit 493216

3)
Mon 11/10 04:05:15 entry 383852
Mon 11/10 04:05:23 exit 493927

每次我运行我的脚本时,$enterCount 的值都是相同的,而$leavecount 的值会不断增加。这意味着什么?它代表内存泄漏吗?它究竟显示了什么?

【问题讨论】:

  • 嗯……大概吧?您是否不必向人们展示您的其余代码以明确说出一种或另一种方式?即使这是一个几乎重复的问题,我仍然认为这是一个很好的问题,因为没有真正的“规范”答案......但请参阅下面的链接。

标签: perl debugging memory-leaks profiling


【解决方案1】:

您可以从@ether 中查看这些 SO 参考:

Github 上的 jkeroes 有一个关于 perl 内存泄漏的 resources 列表。

Devel::Gladiator 有助于了解正在发生的事情 - 您可以修改代码以适应 POD 的概要示例。

【讨论】: