PHP7内存管理中用到了多种结构体,核心结构体有:
    _zend_mm_heap
    _zend_mm_page 对应的是4KB的char数组
    _zend_mm_chunk

    _zend_mm_heap
    变量储存在全局变量alloc_globals中(对应的宏是AG())中的mm_heap(多线程情况下会有多个mm_heap进行管理)字段指向的数据中,其类型为struct_zend_mm_heap,初始值为NULL,在mm启动时进行初始化。
    image.png
    结构体_zend_mm_heap本身是要占内存的,也保存在内存管理申请的内存中。

    _zend_mm_chunk
    PHP7的mm是一个多级内存分配器-预先定义内存块级别,按需要分配的空间的大小找到对应级别,对齐分配。
    image.png