[英]C++ STL-conforming Allocators
處理小對象時,可以使用哪些分配器與STL一起使用。 我已經嘗試過使用Boost中的池分配器,但是並沒有提高性能(實際上,在某些情況下性能會大大降低)。
您沒有說要使用什么編譯器,但是它可能附帶了一堆預構建的分配器。 這是在裝有gcc 4.2.1的Mac上:
~$ find /usr/include/c++/4.2.1/ -name "*allocator*" /usr/include/c++/4.2.1/bits/allocator.h /usr/include/c++/4.2.1/ext/array_allocator.h /usr/include/c++/4.2.1/ext/bitmap_allocator.h /usr/include/c++/4.2.1/ext/debug_allocator.h /usr/include/c++/4.2.1/ext/malloc_allocator.h /usr/include/c++/4.2.1/ext/mt_allocator.h /usr/include/c++/4.2.1/ext/new_allocator.h /usr/include/c++/4.2.1/ext/pool_allocator.h /usr/include/c++/4.2.1/ext/throw_allocator.h
這也是指向BitMagic項目頁面的鏈接, 該頁面討論如何構建自己的項目。 還可以在Loki庫 (以及本書 )中檢出小對象分配器。
Microsoft Visual C ++標准庫實現為基於節點的容器提供了幾個專有的分配器 (至少在即將發布的Visual Studio 2010中)。
您需要一個適合您特定需求的分配器。 STL通用分配器最適合多種情況,如果您想要一個新的分配器,則需要分析並了解您的特定要求。 您必須更具體地說明將這些對象放入哪個容器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.