【问题标题】:PHP script (algorithm) - only loops till a certain iteration after which it stopsPHP 脚本(算法) - 只循环到某个迭代,然后它停止
【发布时间】:2013-04-05 19:57:40
【问题描述】:

我在 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. 我很少调用我的数据库

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

【问题讨论】:

  • 你能粘贴一些代码吗?
  • 描述很可爱,但没有代码我们几乎没用!

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-16
      • 1970-01-01
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多