美文网首页
php7内存分配与垃圾回收

php7内存分配与垃圾回收

作者: 转过 | 来源:发表于2019-06-17 22:15 被阅读0次

    垃圾回收

    文件:zend_gc.c

    引用计数方式:数据存储的物理空间增加一个计数器,其它数据相关时,计数器+1,反之-1。

    定期检查计数器,计数器为0时回收物理空间

    gc结构:

    引用计数与写时拷贝

    通过引用计数,每次引用只增加计数,不拷贝内存,在改变存储值时才进行写时拷贝

    作用:减少内存浪费

    只有字符串,数组,resource支持写时分离,对象、传址引用等不支持 - p79

    循环引用

    引用自身,导致unset自身时引用计数仍然>1

    垃圾回收

    垃圾收集器:将可能是垃圾的元素手机

    条件:

    数据类型是数组和对象

    unset后引用计数大于0

    垃圾回收算法:

    垃圾是由于成员引用自身导致的,那么对value的所有成员减一遍引用计数,

    如果发现value本身refcount变为0,则其引用来自自身,需要被回收

    相关文章

      网友评论

          本文标题:php7内存分配与垃圾回收

          本文链接:https://www.haomeiwen.com/subject/ojltqctx.html