在 PHP 脚本中管理内存的最佳实践?
2022-08-30 17:39:37
内存管理不是大多数PHP开发人员需要考虑的事情。我遇到了一个问题,我的命令行脚本内存不足。它对大型对象数组执行多次迭代,每次迭代产生多个数据库请求。我确信增加内存上限可能是一个短期的解决方案,但我不认为这是一个合适的长期解决方案。我应该做些什么来确保我的脚本不会使用太多内存,并有效地使用内存?
内存管理不是大多数PHP开发人员需要考虑的事情。我遇到了一个问题,我的命令行脚本内存不足。它对大型对象数组执行多次迭代,每次迭代产生多个数据库请求。我确信增加内存上限可能是一个短期的解决方案,但我不认为这是一个合适的长期解决方案。我应该做些什么来确保我的脚本不会使用太多内存,并有效地使用内存?
当您遇到(或预期遇到)内存压力时,要做的第一件事是:如果您打算按顺序处理内存中的大量数据,请不要一次读取它们。
例子:
file
这在PHP中并不总是最方便的事情(数组不会削减它,并且有很多代码仅适用于数组),但是在最新版本中,特别是在引入生成器之后,流式传输数据比以往任何时候都容易。
虔诚地遵循这种做法将“自动”为你照顾其他事情: