我正在运行PHP脚本(CLI)来计算一件大事。它可能是一个(几乎)无限循环但是在17000次运行后我的内存耗尽。我可以通过某种方式转储一些内存(比如每1000次运行一次),这样我可以永远运行它吗?
/最大
答案 0 :(得分:1)
在PHP 5.3中:gc_collect_cycles()
。
答案 1 :(得分:0)
这是PHP中内存管理的article。
如果你还没有达到最大限度,你也可以increase available memory in PHP。
请记住:
有时你不能只是“转储”。根据您的算法,您可能需要先前计算的结果以供将来计算。
这里的关键可能是将问题分解为更小的问题并单独解决。
查看Dynamic Programming上的这篇文章。
答案 2 :(得分:0)
如果这不是服务器应用程序,我建议将脚本分解为cron作业。
无论如何,问题很可能是你不小心你的变量。如果你的内存不足,那么你需要记住取消设置()你的变量。同样,注意你的变量范围。如果变量永远不会超出范围,则在删除对它的所有引用之前,PHP GC无法清除它。