[PerlChina] perl的内存管理问题。

Qiang ( James ) Li shijialee at gmail.com
Sat Mar 1 06:20:42 PST 2008


rorot wrote:
> 大家好,
>    
>     我用perl的HTML::DOM 解析约7万个HTML页面内容。结果发现没解析2,000个左 
> 右,脚本程序就出现一次崩溃。错误信息为内存占用过多,被操作系统杀死。
> 
>     我不知道如何去DEBUG一个perl脚本,跟踪到底那部分没有释放内存。但是可 
> 以肯定的是我的程序是运行一个sub foo()循环,这个sub里的new Object()都被我 
> 调用过object->close(),也就是文档里说的destroy操作。为什么持续运行程序, 
> 内存暴涨,从10M一直上升到580MB然后被操作系统杀死。。。
> 
>     能告诉我如何去调试一个perl程序, 或者直接找出那里出现内存泄露吗? 或 
> 者还是perl的内存管理释放内存的时间太慢???
> 

先试试 truncatei 所说的.

关于 Perl 的 Profiling..

使用 Devel::DProf ( 或 Devel::Profiler ) , 这里是两篇介绍文章
http://www.perl.com/pub/a/2004/06/25/profiling.html
http://mailman.anu.edu.au/pipermail/perl.sig/2005-July/000011.html

另外还有 Devel::Leak::Object

如果还有问题,把相关的程序贴上来吧.

> rorot
> Mar/01/2008
> 
> 

Qiang


More information about the China-pm mailing list