memory pool
内存池:
是一种内存分配方式。在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是,使得内存分配效率得到提升。
直接使用系统调用malloc/free、new/delete进行内存分配和释放,的弊端:
- 调用malloc/new,系统需要根据“最先匹配”、“最优匹配”或其他算法在内存空闲块表中查找一块空闲内存,调用free/delete,系统可能需要合并空闲内存块,这些会产生额外开销。
- 由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。
- 容易造成内存泄漏。
内存池的设计: