池分配是一种很是快速的内存分配方案,但其使用受到限制。有关池分配的更多信息(也称为简单隔离存储,请参阅 池化概念和简单隔离存储)。html
使用池能够更好地控制程序中内存的使用方式。例如,您可能但愿在一个点上分配一堆小对象,而后到达程序中的某个点,再也不须要它们。使用池接口,您能够选择运行它们的析构函数,或者只是将它们丢弃为遗忘; 池接口将保证没有系统内存泄漏。函数
当存在大量小对象的分配和释放时,一般使用池。另外一种常见用法是上面的状况,其中许多对象可能会从内存中丢失。
一般,当您须要更有效的方法来执行异常内存控制时,请使用池。性能
pool_allocator
是一种更通用的解决方案,旨在有效地处理对任意数量的连续块的请求。
fast_pool_allocator
也是一种通用解决方案,但其目的是有效地为一个块的请求提供服务; 它适用于连续的块,但不如pool_allocator
。
若是您严重关注性能,在处理相似std::list
容器时使用fast_pool_allocator
,并在处理相似std::vector
的容器时使用pool_allocator
code