首页 > 代码库 > PHP 的垃圾收集机制是怎样的
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在他的书里写的很明白。可有可无,不可置否。而内存管理的东西一般都是桌面程序更多去考虑的。
——————
以下来自官方文件
- PHP 手册》特点》垃圾回收机制
垃圾回收机制
Table of Contents
- 引用计数基本知识
- 回收周期(Collecting Cycles)
- 性能方面考虑的因素
这部分将说明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 的垃圾收集机制是怎样的