PHP中有垃圾收集吗?
Posted
技术标签:
【中文标题】PHP中有垃圾收集吗?【英文标题】:Is there garbage collection in PHP? 【发布时间】:2010-12-16 16:03:37 【问题描述】:我知道在 php 中您不必释放内存。 垃圾收集器是否到达?
【问题讨论】:
【参考方案1】:是的,here 是一篇很好的文章,描述了它的陷阱。在 PHP > 5.3.0 中,还有gc_enable 函数。
【讨论】:
该文章中未包含的一个问题是匿名函数,它是使用 create_function() 创建的。 These are not subject to garbage collection. @Dave Lancea 很好的观察。不过我只想指出,您的链接指向 2007 年发表的评论,因此 2017 年可能不再是这样(但也许是这样,我找不到有关该主题的更多信息)。【参考方案2】:PHP 结合了垃圾收集和引用计数。后者是管理内存的主要模式,垃圾收集器会拾取 ref 计数器遗漏的部分(循环引用)。在 5.3 之前,php 只有引用计数,即使在 5.3 中,它仍然是通常释放内存的方式。
【讨论】:
【参考方案3】:是的。垃圾收集器还会进行会话清理。
【讨论】:
【参考方案4】:从 5.3.0 开始支持垃圾回收。请查看来自 php.net http://php.net/manual/en/features.gc.php 的这篇内容丰富的文章
【讨论】:
【参考方案5】:从 5.3.0 开始,您可以使用 gc_collect_cycles function
强制进行垃圾回收。
【讨论】:
以上是关于PHP中有垃圾收集吗?的主要内容,如果未能解决你的问题,请参考以下文章