【PHP】认识PHP的垃圾回收机制(1)

前言

本文的目的不仅仅是总结PHP的垃圾回收机制,而是要发散思维,从垃圾回收机制中得到更多的细节。

什么是垃圾回收

垃圾回收机制广泛存在于各种编程语言中,由于每个变量被定义都会占用一部分内存空间,如果这些空间长期不被释放,系统的内存就会出现不足的情况,为了保证系统能在软件运行过程中有足够的内存使用,就需要这样一套回收机制,释放掉不需要使用的内存空间。

高级语言一般在自动实现了垃圾回收,不需要我们主动去控制。

PHP的垃圾回收实现

php5.3的zval

struct _zval_struct {
     union {
          long lval;
          double dval;
          struct {
               char *val;
               int len;
          } str;
          HashTable *ht;
          zend_object_value obj;
          zend_ast *ast;
     } value;
     zend_uint refcount__gc;
     zend_uchar type;
     zend_uchar is_ref__gc;
};

其中的refcount__gcis_ref__gc负责垃圾回收机制的计数,这里被官方成为"引用计数".

php7的zval

struct _zval_struct {
     union {
          
雨果虾滑猫 CSDN认证博客专家 PHP MySQL Python
CSDN博客专家。PHP/MYSQL/Elasticsearch,PMP项目管理 ,产品设计。6年服务端开发,2年产品,连续创业者,曾经参与区块链、新零售行业创业。Gitchat作者,曾在Gitcchat发布智能合约相关课程。
相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值