sgi stl内存池
时间: 2023-11-23 07:53:28 浏览: 126
基于STL的内存池类
4星 · 用户满意度95%
SGI STL中的内存池是一种用于管理小对象内存分配的机制。它使用了SGI自己定义的allocator,实现了一个small object的内存池。这个内存池的主要目的是为了防止小块内存频繁分配、释放,造成系统内很多内存碎片,没有更多的连续大内存块。在STL中,所有的容器都使用了这个allocator,而在Loki中也实现了类似的内存管理机制。内存池的实现主要包括两个部分:内存分配和内存回收。在内存分配时,内存池会先从自己的空闲链表中查找是否有足够大小的内存块可用,如果没有则会调用_S_chunk_alloc函数向系统申请更多的内存。在内存回收时,内存池会将空闲的内存块加入到空闲链表中,以备下次使用。通过使用内存池,可以有效地减少内存碎片,提高内存分配和回收的效率。
阅读全文