【发布时间】:2013-01-08 05:07:04
【问题描述】:
这与 PHP 5.3 Cli 应用程序有关,该应用程序以复杂的方式处理大量数据,需要数小时才能运行。有人发现关闭垃圾收集可以让它运行得更快(可能高达 50%)。
我遇到的唯一一篇提到此性能影响的文章是http://derickrethans.nl/collecting-garbage-performance-considerations.html。我不确定我是否完全遵循它,但它似乎表明它仅适用于具有大量循环引用的代码。
有人能解释一下吗?
另外,鉴于我们已经关闭了 gc,有没有办法手动减少内存?建议使用 unset()。一项快速测试表明,无论对象大小如何,unset() 都释放了大约 80 个字节。这表明它只是取消了参考,我在网上阅读的内容证实了这一点。我是否认为当变量超出范围时,即使没有垃圾收集,这 80 个字节也会被释放?
【问题讨论】:
标签: php memory-management garbage-collection unset