PHP垃圾回收机制与内存管理原理.pdfVIP

  • 0
  • 0
  • 约1.11千字
  • 约 1页
  • 2026-11-12 发布于北京
  • 举报

PHP的回收机制

计数

1、每一个变量定义时都保存在一个叫zval的容器里面,这里面包含了数量的类型和和

值,

还包含了一个refcount(理解为存在几个变量个数)和is_ref(理解为是否为引

用变量)两个额外信息,

当变量被一次refcount就会+1,当你unset一下这个值就会减1直到为

0就会从内存中删除。

2、定义一个变量的时候并不是每次都会扩大预定于值,因为PHP会在内存中先预占用一

个空间,

等你变量的时候就会分配给你,但是当你超出这个预占用空间,那么它就会

增加空间,

但是等你删除变量时候这个空间容量不会立即

3、变量的不会单独的多增加内存占用,它会指向zval结构体,只是refcount+1

4、简单说说,PHP的变量依赖于一个实现symbol_table符号表,而符号表的基础

实现是HashTable,

也就是和PHP数组的基础实现是一致的。正是因为符号表的存在,让我们可以使用g

lobal标记全局变量,

用如compact等函数直接从当前符号表中拉出变量出来

文档评论(0)

1亿VIP精品文档

相关文档