PHP 的垃圾收集机制是怎样的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 的垃圾收集机制是怎样的相关的知识,希望对你有一定的参考价值。

PHP作为脚本语言是页面结束即释放变量所占内存的。 当一个 php线程结束时,当前占用的所有内存空间都会被销毁,当前程序中所有对象同时被销毁。GC进程一般都跟着每起一个SESSION而开始运行的。

gc目的是为了在session文件过期以后自动销毁删除这些文件。在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP会将其在内存中销毁;这是PHP 的GC垃圾处理机制,防止内存溢出。 

执行这些函数也可以起到回收作用 

__destruct

unset

mysql_close

fclose php对session有明确的gc处理时间。

设定 session.gc_maxlifetime 如果说有垃圾,那就是整体的程序在框架使用中,会多次调用同一文件等等造成的非单件模式等。所以在出来的时候,必要的用_once 引用,在声明类的时候使用单件模式。还有简化逻辑等等。

而如果妄想让PHP自己本身管理内存,进行垃圾管理。呵呵。好像PHP还办不到,对于析构函数,ANDI在他的书里写的很明白。可有可无,不可置否。而内存管理的东西一般都是桌面程序更多去考虑的。

——————

以下来自官方文件

垃圾回收机制

Table of Contents

这部分将说明PHP 5.3的新的垃圾回收机制(也就是GC)的特点。

引用计数基本知识

http://php.net/manual/zh/features.gc.refcounting-basics.php#features.gc.compound-types

回收周期(Collecting Cycles) 

http://php.net/manual/zh/features.gc.performance-considerations.php

性能方面考虑的因素

http://php.net/manual/zh/features.gc.performance-considerations.php#features.gc.performance-considerations

 


以上是关于PHP 的垃圾收集机制是怎样的的主要内容,如果未能解决你的问题,请参考以下文章

JVM垃圾收集机制

Java垃圾收集机制

Java垃圾回收机制是啥?

67.Java垃圾收集机制对象引用垃圾对象的判定垃圾收集算法标记—清除算法标记—整理算法分代收集垃圾收集器性能调优

垃圾收集机制

Java垃圾收集机制