zend_mm_gc流程
2016-08-09 17:16:28 0 举报
Zend Memory Manager(Zend_MM)是PHP的垃圾回收机制,用于自动管理内存资源。其GC(Garbage Collection)流程主要包括以下几个步骤:首先,Zend_MM会定期检查内存中的对象,识别出不再被引用的对象;然后,将这些对象标记为“垃圾”;接着,Zend_MM会对这些垃圾对象进行回收,释放内存空间;最后,将回收后的内存空间重新分配给新的对象使用。通过这种方式,Zend_MM能够有效地避免内存泄漏和提高程序的性能。
作者其他创作
大纲/内容
是
重置该page的状态信息至Free
获取托管堆free_slot数组的下一个链表
zend_mm_free_slot所属page是否完全空闲
否
page是Small且完全闲置
数组中是否存在未遍历链表
标记has_free_map=1
返回回收大小,GC结束
遍历托管堆中Chunk链表内的所有pages
当前是否为null
has_free_map==1?
获取托管堆free_slot数组的第一个元素(链表头)
跳转至下一个链表元素
重新遍历链表,将属于空闲page的zend_mm_free_slot移出链表
GC触发
计算当前zend_mm_free_slot元素所在page,将page中记录的空闲数量+1
0 条评论
下一页