【问题标题】:Debugging PHP memory leak. Tracking the reference count?调试 PHP 内存泄漏。跟踪引用计数?
【发布时间】:2012-01-02 19:04:43
【问题描述】:

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

有什么方法可以跟踪(最好是回溯)PHP 对象的引用计数在何处/何时增加或减少?

【问题讨论】:

    标签: php memory-leaks reference-counting


    【解决方案1】:

    【讨论】:

    • 谢谢。我熟悉 XDebug 和函数跟踪。但是您知道如何使用它来跟踪我的代码中引用泄漏对象的位置吗?
    • 您可以尝试使用 webgrind 进行跟踪,它会显示您调用的所有函数方法,它不会显示内存使用情况,但我认为您可以通过使用时间来跟踪它们
    【解决方案2】:

    尝试使用:

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

    【讨论】:

    • 我已经使用 XDdebug 来找出泄漏的对象。我现在想知道的是它在哪里泄漏? IE。在我的代码中,对该对象的引用保存在哪里?可以使用 XDebug 吗?
    • 您如何使用断点来定位对象泄漏的位置?很难有一个“通用”的解决方案。
    • 因此我的问题。当 Zend 引擎增加或减少对象的内部引用计数时,我曾希望有某种方式来跟踪或触发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    相关资源
    最近更新 更多