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

Saving Memory / Calling external code and dumping memory used before continuing

我有一个备份脚本,它在执行时不断构建 excel 文件。主脚本调用 class 来处理 excel 文件生成数百次(每个 excel 文件一个)。

问题在于,在循环的每个周期中,调用 class 构建下一个 excel 文件只会增加已用内存。最终这会淹没为执行分配的内存。

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

过去几天我尝试使用 xdebug 进行调试,但我没有看到任何会导致问题的漏洞 -- 内存使用量随着时间的推移逐渐增加。

谢谢!

尝试将实际的 "work" 分离到单独的 .php 脚本中,并使用 shell_exec (http://php.net/manual/en/function.shell-exec.php) 从主脚本中调用它。

这样,"worker" 脚本分配的任何内存在执行完毕后都会自动清除。

您还可以查看 CRON 作业以间隔执行主脚本,而不是允许它 运行 作为守护进程。

还有forking