Boost::pool (1)

POOL

什么是pool

池分配是一种很是快速的内存分配方案,但其使用受到限制。有关池分配的更多信息(也称为简单隔离存储,请参阅 池化概念简单隔离存储)。html

我为何要使用Pool?

使用池能够更好地控制程序中内存的使用方式。例如,您可能但愿在一个点上分配一堆小对象,而后到达程序中的某个点,再也不须要它们。使用池接口,您能够选择运行它们的析构函数,或者只是将它们丢弃为遗忘; 池接口将保证没有系统内存泄漏。函数

我何时应该使用Pool?

当存在大量小对象的分配和释放时,一般使用池。另外一种常见用法是上面的状况,其中许多对象可能会从内存中丢失。
一般,当您须要更有效的方法来执行异常内存控制时,请使用池。性能

我应该使用哪一个池分配器?

pool_allocator 是一种更通用的解决方案,旨在有效地处理对任意数量的连续块的请求。
fast_pool_allocator也是一种通用解决方案,但其目的是有效地为一个块的请求提供服务; 它适用于连续的块,但不如pool_allocator
若是您严重关注性能,在处理相似std::list容器时使用fast_pool_allocator,并在处理相似std::vector的容器时使用pool_allocatorcode

相关文章
相关标签/搜索