看SGI STL内存池的管理,还真是不浪费一丝一毫。从内存池中申请大小为N的块时,如果内存池中还有空间但已不够N,不是立刻分配空间,而是把内存池中现有的小空间分到相应的空闲链表中去再去分配新空间。
还有一段,是如果堆分配不到空间了,则去看空闲链表,把空闲链表中的空间二次利用。估计这段代码跑上一个月也跑不到一次,可是必竟是一种情况,细之又细。
看SGI STL内存池的管理,还真是不浪费一丝一毫。从内存池中申请大小为N的块时,如果内存池中还有空间但已不够N,不是立刻分配空间,而是把内存池中现有的小空间分到相应的空闲链表中去再去分配新空间。
还有一段,是如果堆分配不到空间了,则去看空闲链表,把空闲链表中的空间二次利用。估计这段代码跑上一个月也跑不到一次,可是必竟是一种情况,细之又细。