簡體   English   中英

符合C ++ STL的分配器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM