PHP脚本中的损坏堆

时间:2013-02-25 00:27:25

标签: php zend-framework

zend_mm_heap corrupted将作为我编写的用于预渲染大型环境的PHP程序的错误消息出现。

我怀疑它是由于脚本中有太多变量赋值造成的,虽然我不确定这一点,因为我编写的脚本在任何给定时间只有大约20个变量,其中一个是一个最多可容纳500个元素的数组。也就是说,迭代次数总计达数十亿。

我怀疑是否正确,如果有的话,有什么可以做的吗?例如,运行脚本一段时间,然后将重要变量转储到文件并重新启动脚本,让它获取这些变量并继续吗?

会更好吗?

2 个答案:

答案 0 :(得分:0)

我已经看到了这个问题,并且可以使用phalcon重现它,但它似乎来自APC缓存。我通过从APC切换到zend opcache来修复。您可以尝试禁用APC以查看它是否消失。

最好我可以从我的调查中得出结论,APC正在为zend正在使用的记忆做些什么。 PS,它与zend框架没有任何关系,它是与zend合并到php中的部分相关的错误。

答案 1 :(得分:0)

您的问题的解决方案是下载与您的PHP版本兼容的最新版本的APC。

您必须强行安装它才能覆盖旧版本的APC。在许多情况下,这将解决您遇到的问题。