我在
Windows 2003 Server上使用ActiveState Perl 5.6,并且有一些内存泄漏问题.有没有什么好的工具(甚至是坏的工具,会给出一个线索),我可以用来帮助找到它们.
解决方法
所有perl程序内存泄漏都将是XS持有引用或循环数据结构.
Devel::Cycle是查找循环引用的好工具,如果你知道什么结构可能包含循环.
Devel::Peek可用于查找具有高于预期参考计数的对象.
如果你不知道其他的地方,Devel::LeakTrace::Fast可能是一个很好的第一名,但是你需要一个用于调试的perl.
如果你怀疑漏洞在XS空间之内,那就更难了,Valgrind可能是你最好的选择. Test::Valgrind可能会帮助您降低搜索所需的代码量,但这在Windows上不起作用,因此您必须将(至少泄漏部分)移植到Linux才能执行此操作.