在處理小對象時,哪些分配器可用於STL。我已經嘗試過使用Boost的池分配器,但沒有得到性能改進(實際上,在某些情況下,性能有很大的下降)。C++符合STL的分配器
5
A
回答
3
你沒有說你使用了什麼編譯器,但它可能帶有一堆預構建的分配器。這是在Mac上使用gcc 4.2.1:
~$ 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 library(和book)中的小對象分配器。
1
Microsoft Visual C++標準庫實現爲基於節點的容器提供了several proprietary allocators(至少在即將推出的Visual Studio 2010中)。
1
您需要一個適合您的特定需求的分配器。 STL通用分配器對於各種各樣的情況是最好的,如果你想要一個新的分配器,你需要分析和理解你的特定需求。你必須更具體地說明你將要把這些物體放入什麼容器。
相關問題
- 1. C++ STL問題:分配器
- 2. C++ STL分配器VS運營商新
- 3. STL分配器和運算符new []
- 4. STL的TCMalloc分配器
- 5. 爲什麼這個C++ STL分配器沒有分配?
- 6. 什麼分配器在STL
- 7. 在C++中重載stl :: map的分配器和釋放器
- 8. C++ STL對象的內存分配
- 9. 如何爲動態分配的stl容器設置分配器?
- 10. 替換默認的STL分配器
- 11. C++自定義分配器和STL容器
- 12. 爲C++ STL隊列預分配空間
- 13. STL向量分配
- 14. MSVC中的C++自定義STL分配器錯誤?
- 15. 用於C++的擴展包裝malloc分配器STL
- 16. STL容器分配和const指針
- 17. 在C++中分隔字母字符STL
- 18. C++ STL容器
- 19. C++ STL內存分配器編譯錯誤
- 20. C++ stl庫容器具有動態內存分配?
- 21. 我自己的STL內存分配器的分段錯誤
- 22. C++ STL集合差異
- 23. C++ STL集合使用
- 24. STL - 複製混合容器
- 25. 爲什麼在C++ STL中分離算法,迭代器和容器STL
- 26. C#lambda分配和集合
- 27. 不一致的STL容器適配器
- 28. vc6中的STL映射分配錯誤
- 29. STL集合= =運算符的問題
- 30. 使用基於動態/狀態的分配器的STL實現?