传统STL有哪些缓存友好的高性能替代品。 它们应该针对现代64位Intel / AMD CPU的缓存进行优化。
我不是在寻找基于官方标准的STL实现,它必须基于它,或者是具有高性能数据结构的扩展STL。或者只是一个提供列表,地图等常规数据结构的库。
高并发和无锁数据结构将是一个奖励。
我对链接感兴趣许可证。
我读过有关EASTL并且之前使用过Boost的文章。
目前游戏开发者和科学界正在使用什么来充分利用CPU?什么在管道中?
答案 0 :(得分:10)
为EASTL +1。
任何基于C ++ 11兼容编译器的东西都可能因为移动语义而执行得更好。
使用-std=c++0x
对于并发/无锁容器,我建议:
我的核心建议就是这样:
优化标准库主要是决定如何正确使用算法/容器而不是寻找“完美”实现的因素。 STL是通用的,永远不会有完美的实现。
密切关注您的返回值/输出参数(更喜欢使用输出迭代器,并使用transform
,partial_sum
,accumulate
放入具有reserve
或{的容器中{1}}适当地调用它;为元素类型等定义resize
。)
答案 1 :(得分:1)
我相信标准模板自适应并行库STAPL可能是目前最重要的研究合作之一。
微软正在为Asynchronous Agents Library投入大量精力,Thread Building Blocks有许多经过良好测试的高性能容器,用于传递消息。
英特尔有自己的产品{{3}},其中包含许多用于并行处理的容器和算法。
答案 2 :(得分:1)
Boost Compute绝对是一名亚军。