3.6 pool库概述

如果读者学习过操作系统的内存管理机制和内存分配算法等知识,那么读者可能了解内存池的概念。简单来说,内存池预先分配了一块大的内存空间,然后就可以在其中使用某种算法高效快速地定制内存分配。

boost.pool库基于简单分隔存储的思想实现了一个快速、紧凑的内存池库,不仅能够管理大量的对象,还可以用作STL的内存分配器。在某种程度上讲,它近似于一个小型的垃圾回收机制,在需要大量分配/释放小对象时其效率很高,而且完全不需要考虑delete。

pool库包含4个组成部分:最简单的pool、分配类实例的object_pool、单件内存池singleton_pool和可用于标准库的pool_alloc,本书只介绍前3个组件。