内存分配问题 - PHP

时间:2010-12-11 19:36:58

标签: php memory-leaks memory-management

我有一个非常奇怪的问题:

Fatal error: Allowed memory size of 134217728 bytes exhausted 
(tried to allocate 21748 bytes) 

我理解错误但是我正在跟踪脚本的所有内存分配而且它没有达到以上:总共2883584。

正在触发致命错误之前的行实际内存使用量为2883584.如上面的错误所述,脚本试图分配额外的21748以上,无论如何还没有累加到134217728。

为什么会这样想?

P.S。 对于我正在使用的内存分配用法:memory_get_usage(true)函数。

2 个答案:

答案 0 :(得分:1)

考虑将true传递给memory_get_usage,这将返回分配的系统内存的真实数量(而不仅仅是emalloc用法)。运行时可能是指终止脚本时使用的系统内存,可能要高得多(例如通过不是emalloc值的扩展名。)

答案 1 :(得分:0)

好的,所以我想我已经找到了问题所在。事实证明,如果有硬图像来处理GD2分配内存,但是你无法在memory_get_usage和get_peak中看到它那么蹩脚但是......