STL的高性能替代品?

时间:2011-11-23 01:17:38

标签: c++ stl

传统STL有哪些缓存友好的高性能替代品。 它们应该针对现代64位Intel / AMD CPU的缓存进行优化。

我不是在寻找基于官方标准的STL实现,它必须基于它,或者是具有高性能数据结构的扩展STL。或者只是一个提供列表,地图等常规数据结构的库。

高并发和无锁数据结构将是一个奖励。

我对链接感兴趣许可证。

我读过有关EASTL并且之前使用过Boost的文章。

目前游戏开发者和科学界正在使用什么来充分利用CPU?什么在管道中?

3 个答案:

答案 0 :(得分:10)

为EASTL +1。

任何基于C ++ 11兼容编译器的东西都可能因为移动语义而执行得更好。

使用-std=c++0x

的GNU libstdc ++实现已经可以看出这种差异

对于并发/无锁容器,我建议:

    Max Khiszinsky的
  • libCds
  • 来自英特尔的TBB(没有亲身体验)

我的核心建议就是这样:

优化标准库主要是决定如何正确使用算法/容器而不是寻找“完美”实现的因素。 STL是通用的,永远不会有完美的实现。

密切关注您的返回值/输出参数(更喜欢使用输出迭代器,并使用transformpartial_sumaccumulate放入具有reserve或{的容器中{1}}适当地调用它;为元素类型等定义resize。)

答案 1 :(得分:1)

我相信标准模板自适应并行库STAPL可能是目前最重要的研究合作之一。

微软正在为Asynchronous Agents Library投入大量精力,Thread Building Blocks有许多经过良好测试的高性能容器,用于传递消息。

英特尔有自己的产品{{3}},其中包含许多用于并行处理的容器和算法。

答案 2 :(得分:1)

Boost Compute绝对是一名亚军。

http://boostorg.github.io/compute/