了解Xdebug内存增量

时间:2012-01-11 18:22:54

标签: php xdebug

我的跟踪文件中有以下行:

0.5927  12212144    2780040.00  ->  require_once(E:\web\lib\nusoap\nusoap.php)  E:\web\some_path\file.php:28

我知道要求这个文件需要2.7MB的内存。简单地要求文件花费那么多是正常的吗?需要文件时会影响内存成本吗?

我需要另外13行,每行至少需要350,000KB的内存。我还有两条线,每条线需要1MB。再一次,这种事情是否正常?

编辑#1:

由于内存泄漏,我开始研究这个问题。我们有一个脚本会使内存使用量达到峰值,但是当它出现故障时,RAM会增加10MB +(ish)。

有一次,当Apache达到450,000 MB时,我们开始出现以下内存错误:

PHP Fatal error: Out of memory (allocated x) (tried to allocate y bytes) in/path_to/file.php(1758) on line z

2 个答案:

答案 0 :(得分:1)

是。这很正常。 nusoap库非常大,但在PHP内部它存储为一个爆炸的二进制表示。你需要意识到需求本身不占用空间,而是包含文件。

我不太明白你的“.00”到底在哪里。我刚检查了代码,但它没有创建浮点数。

欢呼声, 德里克

答案 1 :(得分:0)

  

同样,这种事情是否正常?

是的,这是正常的。如果你想了解delta,请查看xdebug源代码,它可以很好地解释它。另请先阅读xdebug文档,IIRC网站告诉您,您不应该将这些数字用于实际(并且在您的问题中看起来像是以某种方式)。

另外请注意xdebug不能用于生产。如果您需要使用生产内存,则需要其他工具。