Boost::pool (1)

POOL

什麼是pool

池分配是一種很是快速的內存分配方案,但其使用受到限制。有關池分配的更多信息(也稱爲簡單隔離存儲,請參閱 池化概念簡單隔離存儲)。html

我爲何要使用Pool?

使用池能夠更好地控制程序中內存的使用方式。例如,您可能但願在一個點上分配一堆小對象,而後到達程序中的某個點,再也不須要它們。使用池接口,您能夠選擇運行它們的析構函數,或者只是將它們丟棄爲遺忘; 池接口將保證沒有系統內存泄漏。函數

我何時應該使用Pool?

當存在大量小對象的分配和釋放時,一般使用池。另外一種常見用法是上面的狀況,其中許多對象可能會從內存中丟失。
一般,當您須要更有效的方法來執行異常內存控制時,請使用池。性能

我應該使用哪一個池分配器?

pool_allocator 是一種更通用的解決方案,旨在有效地處理對任意數量的連續塊的請求。
fast_pool_allocator也是一種通用解決方案,但其目的是有效地爲一個塊的請求提供服務; 它適用於連續的塊,但不如pool_allocator
若是您嚴重關注性能,在處理相似std::list容器時使用fast_pool_allocator,並在處理相似std::vector的容器時使用pool_allocatorcode

相關文章
相關標籤/搜索