单元内存池是以一个固定的单元长度为分配内存长度的内存池,只能分配固定长度的内存;单元内存池具有效率极高,消耗少,内存碎片少的特点。
动态内存池支持不固定长度的内存分配,相同,动态内存池也效率极高,并且此动态内存池在归还内存块时会空闲内存合并,以左右探查方式合并空闲内存,此方式极大的加速了分配内存效率,并且极大的减少了内存碎片的产生,在应用于上线环境中及其适用。
这两个内存池只会向系统申请内存,并不会向系统释放内存,因此比如你分配了10MB的内存,然后归还给了内存池,但内存池并不会将其释放,而是加入空闲表再次分配。
(在使用中此因素基本无需考虑,因为你的程序既然能用到10MB内存,就很可能再次能用到)