垃圾回收机制
PHP 5.3 版本之前都是采用引用计数的方式管理内存,PHP 所有的变量存在一个叫 zval
的变量容器中,当变量被引用的时候,引用计数会+1,变量引用计数变为0时,PHP 将在内存中销毁这个变量。
但是引用计数中的循环引用,引用计数不会消减为 0,就会导致内存泄露。
在 5.3 版本之后,做了这些优化:
并不是每次引用计数减少时都进入回收周期,只有根缓冲区满额后在开始垃圾回收;
可以解决循环引用问题;
可以总将内存泄露保持在一个阈值以下。
更多:http://docs.php.net/manual/zh/features.gc.performance-considerations.php
Last updated