【问题标题】:Is there garbage collection in PHP?PHP中有垃圾收集吗?
【发布时间】:2010-12-16 16:03:37
【问题描述】:

我知道在 PHP 中您不必释放内存。 垃圾收集器是否到达?

【问题讨论】:

    标签: php memory-management garbage-collection


    【解决方案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 强制进行垃圾回收。

          【讨论】:

            猜你喜欢
            • 2011-11-17
            • 2019-11-08
            • 2011-09-28
            • 1970-01-01
            • 1970-01-01
            • 2023-03-30
            • 2011-08-13
            • 2011-12-11
            • 1970-01-01
            相关资源
            最近更新 更多