memory pool
    内存池:
    是一种内存分配方式。在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是,使得内存分配效率得到提升

    直接使用系统调用malloc/free、new/delete进行内存分配和释放,的弊端:

    1. 调用malloc/new,系统需要根据“最先匹配”、“最优匹配”或其他算法在内存空闲块表中查找一块空闲内存,调用free/delete,系统可能需要合并空闲内存块,这些会产生额外开销。
    2. 由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。
    3. 容易造成内存泄漏。

    内存池的设计: