正在清除memory_get_peak_usage缓存


Clearing memory_get_peak_usage Cache

我正试图追踪PHP程序中的内存泄漏(如果重要的话,请使用Magento)。基本问题似乎是某个对象/类中的泄漏,它会随着时间的推移而增长。也就是说,记录到数据库中的信息越多,某些应用程序进程最终使用的内存就越多。Magento是一个高度抽象的系统,所以并不总是清楚运行的代码消耗了这么多内存。这就是我想要找到的。

我一直在程序引导文件的末尾使用memory_get_peak_usage来测试性能,并在大约一周内看到峰值使用量从250MB稳步增长到310MB。我想在整个执行周期中间歇性地使用memory_get_peak_usage来询问

这次通话前的峰值使用量是多少?[周期后期]在这次新呼叫之前的峰值使用量是多少?

我遇到的问题是,一旦我调用memory_get_peak_usage一次,任何未来的调用都会返回与第一次调用相同的值,即使我知道峰值使用率已经改变。这让我相信memory_get_peak_usage被调用一次之后,PHP会缓存结果。我想取消对它的缓存以执行上面概述的测试。

  1. 我可以多次呼叫memory_get_peak_usage吗?

  2. 除了分析我上面描述的场景之外,还有其他选择吗。也许是xDebug的某些功能?

我可以多次调用memory_get_peak_usage吗?

不确定。

除了分析我上面描述的场景之外,还有其他选择吗。也许是xDebug的某些功能?

请查看XDebug配置文件页面。我已经有一段时间没有介绍过一个应用程序了,但当我这样做的时候,我遵循了这篇文章,效果很好。