前言:之前对PHP的GC只是了解了个大概,这次详细了解下PHP的垃圾回收机制(GC)。介于网上大部分都是PHP5.X的GC,虽然 php5 到 php7 GC部分做出的改动较小,但我觉得还是一起写下来比较好
一、原理
php5和php7的垃圾回收机制都是利用引用计数
二、php5和php7不同点
1、PHP5标量数据类型会计数,PHP7标量数据类型不再计数,不需要单独分配内存
2、PHP7的zval 需要的内存不再是单独从堆上分配,不再自己存储引用计数。
3、PHP7的复杂数据类型(比如数组和对象)的引用计数由其自身来存储。