PHP7的垃圾回收机制与PHP5相比有哪些显著不同之处?
- 内容介绍
- 文章标签
- 相关推荐
本文共计721个文字,预计阅读时间需要3分钟。
PHP5和PHP7的垃圾回收机制都是利用引用计数。什么是引用计数?引用计数是一种内存管理技术,用于跟踪每个变量有多少引用指向它。由于PHP是用C语言编写的,C语言中存在一种称为结构体的数据类型。我们的PHP变量在C中就是以这种结构体形式存储的。因此,每个PHP变量在C中都有引用计数。每个PHP变量都存储在一个引用计数器中,用来记录有多少个引用指向它。当引用计数降到0时,该变量所占用的内存就会被回收。
php5和php7的垃圾回收机制都是利用引用计数。
什么叫做引用计数?
由于PHP是用C来写的,C里面有一种东西叫做结构体,我们PHP的变量在C中就是用这种方式存储的。
每个PHP的变量都存在于一个叫做zval的容器中,一个zval容器,除了包含变量名和值,还包括两个字节的额外信息,一个叫做'is_ref',是个布尔值,用来表示这个变量是否属于引用集合,通过这个字节,我们php才能把普通变量和引用变量区分开来.第二个额外字节就是'refcount',用来表示指向这个容器的变量的个数。
本文共计721个文字,预计阅读时间需要3分钟。
PHP5和PHP7的垃圾回收机制都是利用引用计数。什么是引用计数?引用计数是一种内存管理技术,用于跟踪每个变量有多少引用指向它。由于PHP是用C语言编写的,C语言中存在一种称为结构体的数据类型。我们的PHP变量在C中就是以这种结构体形式存储的。因此,每个PHP变量在C中都有引用计数。每个PHP变量都存储在一个引用计数器中,用来记录有多少个引用指向它。当引用计数降到0时,该变量所占用的内存就会被回收。
php5和php7的垃圾回收机制都是利用引用计数。
什么叫做引用计数?
由于PHP是用C来写的,C里面有一种东西叫做结构体,我们PHP的变量在C中就是用这种方式存储的。
每个PHP的变量都存在于一个叫做zval的容器中,一个zval容器,除了包含变量名和值,还包括两个字节的额外信息,一个叫做'is_ref',是个布尔值,用来表示这个变量是否属于引用集合,通过这个字节,我们php才能把普通变量和引用变量区分开来.第二个额外字节就是'refcount',用来表示指向这个容器的变量的个数。

