PHP脚本(算法) - 仅循环到某个迭代,然后停止

时间:2013-04-13 08:19:12

标签: php for-loop memory timeout large-data

我在PHP中运行一个涉及大量数据的算法。所有处理都在嵌套的for循环中进行。奇怪的是,外部for循环在'X'次迭代后停止工作(其中'X'在我运行脚本时一直在变化)。脚本崩溃需要5分钟到30分钟,具体取决于“X”。它不会抛出任何错误,只会对我的var_dump进行不完整的打印输出(在外部循环的第一次迭代中)

这些是我采取的预防措施: 1.我已将php.ini中的超时限制设置为3600秒(60分钟)。 2.我在每个外部for循环迭代后打印出memory_get_usage(),并且我已经验证它与分配给php的最大内存相比要小得多。 一旦使用它,我就会解开数组 4.我重用变量名来限制forloop中的内存 5.我对数据库的调用最少

我一直在解决这个问题很长时间无济于事。所以我的问题是这个问题的原因是什么/如何进行调试呢。非常感谢! 额外:如果我使用更小的测试数据大小,一切正常。

2 个答案:

答案 0 :(得分:0)

显然没有代码这只是一个猜测,但你确定使用单个连接到你的数据库?如果每次重新连接时可能会出现太多可能导致此类错误的连接。

答案 1 :(得分:0)

这听起来像是使用服务器核心的问题,可以在此处找到类似的答案/解决方法:Boost Apache2 up to 4 cores usage, running PHP

尝试并行运行数据集。