Boost::pool (1)

POOL

什么是pool

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

我为什么要使用Pool?

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

我什么时候应该使用Pool?

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

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

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

原文地址:https://www.cnblogs.com/gardenofhu/p/10068504.html