用于调试PHP中的内存泄漏/使用错误的工具/技术

时间:2010-07-28 01:37:35

标签: php memory memory-leaks memory-management xdebug

我有一个命令行脚本,它通过循环运行array()个文件,并使用文件名作为参数来调用辅助对象上的方法。

每次运行脚本时,PHP的memory_get_usage都会报告越来越大的数字

53294264
57019624
61374624
65699176
70230600
75157152
79900392
84630472
89359264
94300016
100031176
105202448
110360808
115777528
121146976
126784824
132366952

直到我错误地用

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted

很明显,某些东西正在泄漏内存,或某种全局/静态存储区域不断被添加。在PHP中调试此类错误的最佳方法是什么?有没有在PHP中无意中发生这种情况的常见情况? xDebug有一些神奇的选项可以帮助我查明这一点吗?其他工具?

我提出的最好的方法是跟随执行链并乱扔代码库并调用memory_get_usage(),直到找到确切的问题为止,但这似乎是一种乏味且低效的方法。

1 个答案:

答案 0 :(得分:5)

看起来Facebook的xhprof提供了memory profiling at the function call level

(我从未使用它,但我真的想...)

相关问题