我有一个备份脚本,可以在执行时不断构建excel文件。主脚本调用一个类来处理excel文件构建几百次(每个excel文件一个)。
问题是,在循环的每个循环中,调用类来构建下一个excel文件只会添加到已用内存中。最终,这会占用为执行分配的内存。
我知道临时答案是增加了允许的内存,但我希望我能用一些内存类型的ob_start / ob_clean函数来包装文件。
我在过去的几天里尝试使用xdebug进行调试,但我没有看到任何可能导致问题的漏洞 - 内存使用量是一个非常逐渐增加的加时赛。
谢谢!
答案 0 :(得分:0)
尝试分离实际的"工作"在单独的.php脚本中,并使用主脚本中的shell_exec
(http://php.net/manual/en/function.shell-exec.php)调用该脚本。
那样"工作者"分配的任何内存。脚本在完成执行后自动清除。
此外,您可能会查看CRON作业以定期执行主脚本,而不是允许它作为守护程序运行。
还有forking。