php5和php7-zval
2019-06-30 本文已影响0人
转过
php5中的zval
![](https://img.haomeiwen.com/i14596353/fa63278ad6dd16d4.png)
1.php5zval中每个字段都明确定义不可修改,为解决循环引用只能进行扩充后实际占用32字节
2.整数和浮点型不需要进行gc,导致内存浪费
3.开启zend内存池情况下,额外为每个zval_gc_info申请一个16字节的zend_mm_block结构体(存放内存相关信息)
1.Php5占用大小为48字节,
php7中的zval
占用内存16字节
![](https://img.haomeiwen.com/i14596353/88ed5de51fc24ba7.png)
包括zval-8字节,u1-type类型和(引用拷贝)标记4字节,u2辅助字段4字节(u2提升缓存友好,减少内存寻址)
2.php5所有变量在堆中申请,php7临时变量在栈中申请