【发布时间】:2010-11-24 11:47:20
【问题描述】:
我用 Perl 编写了一个在 Linux 上运行的持久网络服务。
不幸的是,当它运行时,它的驻留堆栈大小 (RSS) 只会缓慢而稳定地增长、增长、增长。
尽管我努力清除所有不需要的哈希键并删除对对象的所有引用,否则这些引用会导致引用计数保持在原位并阻碍垃圾回收。
在 Perl 程序中,是否有任何好的工具可以分析与各种本地数据原语、祝福哈希引用对象等相关的内存使用情况?你用什么来追踪内存泄漏?
我不习惯在 Perl 调试器或任何各种交互式分析器中花费时间,因此,我会很感激您给出热情、温和、不深奥的回应。 :-)
【问题讨论】:
-
你弄明白了吗?鉴于您提供的信息,我最好的猜测是有一个库(通过某些模块的 dynaloader 引入)是罪魁祸首......
-
这似乎已成为典型的“寻找内存泄漏”问题,因为我对其他类似问题的回答都已合并到这里 :) 我实际上并没有回答一个问题三遍;随着时间的推移,多个线程已合并在一起。
-
口误......你的意思是“驻留集大小”......这个数字与堆栈无关
标签: perl debugging memory-leaks memory-management profiler