内存分配思想:
    系统申请大块内存,再按固定的几种规格分割成较小的内存块,由内存池统一管理。当调用方申请内存时,从池子中匹配已经预分配的合适大小的内存块返回。

    9.2.1 基本概念
    PHP7维护了三种规格的内存:
    chunk(2MB)
    page(4KB)
    slot
    一个chunk可以划分成多个page,而一个page又可以划分成多个slot。
    对MM而言,只有chunk是通过malloc的方式向系统申请内存。
    Zend MM在堆内存中运行。
    MM申请内存按大小分类:
    small内存:小于等于3KB的内存
    large内存:大于3KB且小于等于(2MB-4KB)的内存,可以对应整数倍的page
    huge内存:大于(2MB-4KB)的内存,可以对应整数倍的chunk
    释放内存的时候使用int munmap(void *start, size_t length)

    9.2.2 内存对齐
    在使用C/C++进行软件开发、申请内存时,编译器可以帮助我们实现内存对齐,虽然看上去浪费了内存,但提升了CPU访问内存的速度。PHP7的内存对齐和C/C++类似。