PHP 垃圾回收机制(GC)

PHP使用zval变量容器存储变量,包含类型、值和引用信息。引用计数用于跟踪变量的使用,当计数为0时释放资源。垃圾回收机制处理循环引用,防止内存泄露。当根缓冲区满时,会进行垃圾回收,检查并清理引用计数为0的zval。
摘要由CSDN通过智能技术生成
  • 使用 引用计数机制
  • 将每个 PHP 变量保存在一个叫 zval 变量容器中。
  • zval 变量容器 包含 变量的类型、变量值、 is_ref、refcount
  • is_ref 用于标识该变量是否为引用集合或变量。
  • refcount 表示指向当前变量的个数。
  • 默认打开垃圾回收机制, 当发现有存在循环引用的zval时, 就会把其投入到根缓冲区, 当根缓冲区达到配置文件中的指定数量后, 就会进行垃圾回收, 以此解决循环引用导致的内存泄露问题
  • 如果引用计数减少到零, 所在变量容器将被清除(free), 不属于垃圾;
  • 如果一个zval的引用计数减少后还大于0, 那么它会进入垃圾周期。
  • 其次, 在一个垃圾周期中, 通过检查引用计数是否减1, 并且检查哪些变量容器的引用次数是零, 来发现哪部分是垃圾。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值