STL的高性能替代品
High performance alternatives to STL?
除了传统的STL,还有哪些缓存友好的高性能替代方案?它们应该针对现代64位英特尔/AMD CPU的缓存进行优化。
我不是在寻找基于STL实现的官方标准,它可以基于此,或者是一个具有高性能数据结构的扩展STL。或者只是一个库,提供一般的数据结构,如列表,映射等。
高并发性和无锁数据结构将是加分项。
我对链接感兴趣&执照。
我以前读过EASTL,也用过Boost。
目前,游戏开发者和科学界使用什么来最大限度地利用CPU ?正在筹备中的是什么?
+1为EASTL。
基于c++ 11兼容编译器的任何东西都可能因为move语义而执行得更好。
这个区别在GNU libstdc++的-std=c++0x
对于并发/无锁的容器,我建议:
- libCds by Max Khiszinsky
- 英特尔TBB(无实践经验)
我的中心建议是这样的:
优化标准库主要是决定如何正确使用算法/容器的因素,而不是寻找"完美"的实现。STL是通用的,永远不会有完美的实现。
密切关注你的返回值/输出参数(更倾向于使用输出迭代器,并将transform
, partial_sum
, accumulate
使用到适当调用了reserve
或resize
的容器中;为你的元素类型定义swap
等)
我相信标准模板自适应并行库STAPL,很可能是目前最重要的研究合作之一。
Microsoft正在异步代理库上投入大量精力,该库有许多经过良好测试的用于消息传递的高性能容器。
英特尔有自己的产品,线程构建块,其中包含许多并行处理的容器和算法。
Boost Compute绝对是亚军。
http://boostorg.github.io/compute/相关文章:
- C++中原子的替代品<variant>
- C++sscanf_s的替代品
- getline的替代品
- 什么是 std::function::argument_type 的替代品?
- 有DirectShow的替代品吗?
- 从 16UC3 到 8UC3 的高性能 OpenCV 矩阵转换
- 智能指针作为 QObject::d eleteLater() 的替代品
- 如何从高性能的输入迭代器返回变体?
- C++中 mktime 的替代品
- 对于C++,是否有任何现代的 std::strchr() 替代品?
- 编写高性能C++二传手
- 提升图形库:以高性能的方式检查vertex_descriptor的有效性
- shared_future是<void>condition_variable的合法替代品吗?
- 这是山塔的替代品
- STD :: Referent_wrapper/std :: std :: vector的selution_ptr替代品
- 更好的替代品?
- 排序向量上 std::find_if 和 std::bind2nd 的替代品
- 高性能程序,什么是更好的矢量数组或矢量的矢量
- 标准::矢量的高性能替代品
- STL的高性能替代品