目录
- 概述
- php垃圾回收流程图
- php5和php7垃圾回收上的3大区别
- php7与php5变量引用计数的对比
- php7进阶到架构师相关阅读
概述
这是关于php进阶到架构之php7性能优化学习的第 四 篇文章:5分钟轻松搞懂php7垃圾回收机制
- 第一篇:php7代码性能常见优化技巧
- 第二篇:PHP对象在内存中的分配
- 第三篇:5分钟轻松搞懂php7垃圾回收机制
- 第四篇:细说垃圾回收php5与php7的3大区别
php垃圾回收流程图
PHP5和PHP7的垃圾回收机制都属于 引用计数 和 拷贝复制
php垃圾回收机制详解参考:
php5和php7垃圾回收上的3大区别
php7简单数据类型不再进行引用计数代码分析:
$a = 123;
echo xdebug_debug_zval( 'a');
php5运行结果如下:
a:(refcount=1, is_ref=0),int 123
php7运行结果如下:
a:(refcount=0, is_ref=0)int 123
php5中refcount=1,php7中refcount=0,由此说明 php7简单数据类型不再进行引用计数
php7与php5变量引用计数的对比
php5变量赋值等操作引用计数如图所示:
PHP 7 的计数放到了具体的 value 中,
并且 PHP 7 的有一个专门的 zend_reference 用来表示引用。
php7变量赋值等操作引用计数如图所示