调试PHP内存泄漏.跟踪引用计数


Debugging PHP memory leak. Tracking the reference count?

我有一个相当大的PHP脚本正在泄漏内存。我已经能够弄清楚什么对象正在泄漏,但我还没有能够找出它在脚本中泄漏的地方。我的脚本的某些部分保留了对泄漏对象的引用。

是否有一些方法,我可以跟踪(最好是回溯)在哪里/当一个PHP对象有它的引用计数增加或减少?

你可以使用分析工具来找出是什么泄漏了你的内存,我更喜欢http://xdebug.org/和http://code.google.com/p/webgrind

http://derickrethans.nl/xdebug-and-tracing-memory-usage.html

尝试使用:

  • http://www.php-debug.com
  • http://php.net/manual/en/function.debug-backtrace.php
  • http://xdebug.org/docs/execution_trace

此外,我建议以易于调试的方式编写代码,并将调试过程与代码分开。