网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

php5和php7垃圾回收上有什么的区别?-创新互联

今天就跟大家聊聊有关php5和php7垃圾回收上有什么的区别?可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联主营大荔网站建设的网络公司,主营网站建设方案,App定制开发,大荔h5微信平台小程序开发搭建,大荔网站营销推广欢迎大荔等地区企业咨询

php5和php7垃圾回收上的区别

PHP5和PHP7的垃圾回收机制都属于引用计数,但是在复杂数据类型的算法处理上:PHP7中zval有了新的实现方式。

最基础的变化就是 *zval 需要的内存不再是单独从堆上分配,不再自己存储引用计数。复杂数据类型(比如字符串、数组和对象)的引用计数由其自身来存储。

这种实现方式有以下好处:

1、简单数据类型不需要单独分配内存,也不需要计数;

2、不会再有两次计数的情况。在对象中,只有对象自身存储的计数是有效的;

3、由于现在计数由数值自身存储,所以也就可以和非 zval 结构的数据共享,比如 zval 和 hashtable key 之间。

什么叫做引用计数?

由于PHP是用C来写的,C里面有一种东西叫做结构体,我们PHP的变量在C中就是用这种方式存储的。

每个PHP的变量都存在于一个叫做zval的容器中,一个zval容器,除了包含变量名和值,还包括两个字节的额外信息:

● 一个叫做'is_ref',是个布尔值,用来表示这个变量是否属于引用集合,通过这个字节,我们php才能把普通变量和引用变量区分开来。

● 第二个额外字节就是'refcount',用来表示指向这个容器的变量的个数。

PHP5 与 PHP7 引用计数的对比

php 5.* 变量赋值等操作引用计数如图所示,在倒数第二步,会形成一个循环引用,并且在 unset 操作之后,会产生垃圾。

php5和php7垃圾回收上有什么的区别?

PHP 7 的计数放到了具体的 value 中,zval 不存在写时复制(写时分离)。

并且 PHP 7 的有一个专门的 zend_reference 用来表示引用。

php5和php7垃圾回收上有什么的区别?

看完上述内容,你们对php5和php7垃圾回收上有什么的区别?有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联网站制作公司行业资讯频道,感谢大家的支持。


网站栏目:php5和php7垃圾回收上有什么的区别?-创新互联
文章分享:http://bjjierui.cn/article/cophsc.html

其他资讯