0

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

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

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

4

2 回答 2

0

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

尝试并行运行您的数据集。

于 2013-04-13T08:59:31.307 回答
0

显然没有代码,这只是一个猜测,但您是否确保使用单个连接到您的数据库?如果您每次都重新连接,您可能会获得太多连接,这可能会导致这样的错误。

于 2013-04-13T08:38:04.780 回答