在处理小对象时,哪些分配器可用于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. STL再分配C++
- 3. C++ STL分配器VS运营商新
- 4. STL分配器和运算符new []
- 5. STL的TCMalloc分配器
- 6. 为什么这个C++ STL分配器没有分配?
- 7. 什么分配器在STL
- 8. 在C++中重载stl :: map的分配器和释放器
- 9. C++ STL对象的内存分配
- 10. 如何为动态分配的stl容器设置分配器?
- 11. 替换默认的STL分配器
- 12. STL兼容的内存分配器库
- 13. C++自定义分配器和STL容器
- 14. 为C++ STL队列预分配空间
- 15. 分配嵌套STL容器时使用哪个分配器?
- 16. STL向量分配
- 17. MSVC中的C++自定义STL分配器错误?
- 18. 用于C++的扩展包装malloc分配器STL
- 19. STL容器分配和const指针
- 20. 在C++中分隔字母字符STL
- 21. C++ STL容器
- 22. C++ stl库容器具有动态内存分配?
- 23. C++ STL内存分配器编译错误
- 24. STL容器:构造函数的分配器参数和作用域分配器
- 25. 分配位集合的C++
- 26. 编译器支持STL容器中的有状态分配器
- 27. 我自己的STL内存分配器的分段错误
- 28. C++ STL集合差异
- 29. C++ STL集合使用
- 30. STL中的容器C++