传统的 STL 有哪些缓存友好的高性能替代品。 它们应该针对现代 64 位 Intel/AMD CPU 的缓存进行优化。
我不是在寻找基于官方标准的 STL 实现,它可以基于它或者是具有高性能数据结构的扩展 STL。或者只是一个提供通用数据结构(如列表、 map 等)的库。
高并发和无锁数据结构将是一个奖励。
我对链接和许可证感兴趣。
我读过有关 EASTL 的资料,之前也使用过 Boost。
目前,游戏开发人员和科学界正在使用什么来充分利用 CPU?管道中有什么?
最佳答案
+1 代表 EASTL。
由于移动语义,任何基于 C++11 兼容编译器的东西都可能表现得更好。
使用 -std=c++0x
的 GNU libstdc++ 实现可以看出这种差异
对于并发/无锁容器,我推荐:
- libCds作者:马克斯·希辛斯基
- 来自英特尔的 TBB(无实践经验)
我的核心建议是这样的:
优化标准库主要是决定如何正确使用算法/容器的一个因素,而不是寻找“完美”的实现。 STL 是通用的,永远不会有完美的实现。
只需仔细观察您的返回值/输出参数(更喜欢使用输出迭代器,并使用transform
、partial_sum
、accumulate
到容器中适本地调用了 reserve
或 resize
;为您的元素类型定义 swap
等)
关于c++ - STL 的高性能替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236193/