从线程安全的角度来分,内存池可以分为单线程内存池和多线程内存池。从内存池可分配内存单元大小来分,可以分为固定内存池和可变内存池。
可见与系统管理内存相比,内存池的操作非常迅速,它在性能优化方面的优点主要如下:
(1)针对特殊情况,例如需要频繁分配释放固定大小的内存对象时,不需要复杂的分配算法和多线程保护。也不需要维护内存空闲表的额外开销,从而获得较高的性能。
(2)由于开辟一定数量的连续内存空间作为内存池块,因而一定程度上提高了程序局部性,提升了程序性能。
(3)比较容易控制页边界对齐和内存字节对齐,没有内存碎片的问题。