垃圾回收
文件:zend_gc.c
引用计数方式:数据存储的物理空间增加一个计数器,其它数据相关时,计数器+1,反之-1。
定期检查计数器,计数器为0时回收物理空间
gc结构:
引用计数与写时拷贝
通过引用计数,每次引用只增加计数,不拷贝内存,在改变存储值时才进行写时拷贝
作用:减少内存浪费
只有字符串,数组,resource支持写时分离,对象、传址引用等不支持 - p79
循环引用
引用自身,导致unset自身时引用计数仍然>1
垃圾回收
垃圾收集器:将可能是垃圾的元素手机
条件:
数据类型是数组和对象
unset后引用计数大于0
垃圾回收算法:
垃圾是由于成员引用自身导致的,那么对value的所有成员减一遍引用计数,
如果发现value本身refcount变为0,则其引用来自自身,需要被回收
网友评论