在继续之前保存内存/调用外部代码并转储使用的内存

时间:2015-04-15 07:32:40

标签: php out-of-memory

我有一个备份脚本,可以在执行时不断构建excel文件。主脚本调用一个类来处理excel文件构建几百次(每个excel文件一个)。

问题是,在循环的每个循环中,调用类来构建下一个excel文件只会添加到已用内存中。最终,这会占用为执行分配的内存。

我知道临时答案是增加了允许的内存,但我希望我能用一些内存类型的ob_start / ob_clean函数来包装文件。

我在过去的几天里尝试使用xdebug进行调试,但我没有看到任何可能导致问题的漏洞 - 内存使用量是一个非常逐渐增加的加时赛。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试分离实际的"工作"在单独的.php脚本中,并使用主脚本中的shell_exechttp://php.net/manual/en/function.shell-exec.php)调用该脚本。

那样"工作者"分配的任何内存。脚本在完成执行后自动清除。

此外,您可能会查看CRON作业以定期执行主脚本,而不是允许它作为守护程序运行。

还有forking