Dan*_*lig 3 php debugging heap dump out-of-memory
我目前正在调试一个不断遇到OutOfMemory异常的脚本.它作为cronjob运行并且通常运行良好,但是当cronjob运行一段时间(无论出于何种原因)时,脚本必须处理排队的许多元素并将遇到OutOfMemory异常.
从检查代码我无法发现问题.我相信其中一个迭代函数调用可能会泄漏内存,但我不确定哪一个和哪里.发生OutOfMemory异常时,是否有选项可以让PHP转储堆?我或许可以从那里发现问题(最有可能).
虽然我无法在"Exception"选项中找到"转储堆",但我确实发现get_defined_vars(),如果从全局范围调用,则基本上是堆转储.使用这个,我能够看到在我的记忆中有数百(实际上是数千)仍然引用的数据库行.这是由于臭名昭着的函数中某处未释放的mysql结果资源导致泄漏.我发现并修复了它.它现在运行良好.
| 归档时间: |
|
| 查看次数: |
2442 次 |
| 最近记录: |