PHP脚本中的损坏堆

PHP脚本中的损坏堆,php,zend-framework,Php,Zend Framework,zend_mm_heap corrupted在我为预渲染大型环境而编写的PHP程序中出现错误消息 我怀疑这是由于脚本中有太多的变量赋值造成的,尽管我不确定这一点,因为我编写的脚本在任何给定时间只有大约20个变量,其中一个是一个数组,最多可以容纳500个元素。这就是说,总的迭代次数是几十亿次 我的怀疑正确吗?如果正确,有什么办法可以解决吗?例如,运行脚本一段时间,然后将重要变量转储到文件中并重新启动脚本,使其拾取这些变量并继续运行是否更好?我看到了这个问题,可以使用phalcon重现它,但它似乎源

zend_mm_heap corrupted
在我为预渲染大型环境而编写的PHP程序中出现错误消息

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


我的怀疑正确吗?如果正确,有什么办法可以解决吗?例如,运行脚本一段时间,然后将重要变量转储到文件中并重新启动脚本,使其拾取这些变量并继续运行是否更好?

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


我从调查中得出的最好的理由是APC正在对zend正在使用的内存做一些事情。另外,它与zend framework没有任何关系,这是一个与合并到php中的zend部分相关的错误。

问题的解决方案是加载与php版本兼容的最新版本的APC


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

您已经看过了吗?是的,我有。所有答案似乎都不相关。我没有使用OB,我使用的是一个对象,但我尝试使用过程函数,错误仍然发生,数组的大小是通过在添加之前检查它来显式控制的,我使用的是Windows,等等。PHP错误日志中有什么内容吗?有时,屏幕上可能没有显示其他信息,即使脚本设置为显示所有错误。只不过是损坏的堆消息。没有行号或任何东西。您是否尝试增加php.ini中的可用内存?如果我要尝试修复您的代码,我会逐步注释热点,以查看问题何时停止,同时让程序输出进程无缓冲区。也就是说,一个数十亿周期的代码不是PHP的用途。考虑编写一个插件(MOD)来满足你的特定目的。但是我不能给你具体的帮助。