STL的高性能替代品

High performance alternatives to STL?

本文关键字:替代品 高性能 STL      更新时间:2023-10-16

除了传统的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使用到适当调用了reserveresize的容器中;为你的元素类型定义swap等)

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

Microsoft正在异步代理库上投入大量精力,该库有许多经过良好测试的用于消息传递的高性能容器。

英特尔有自己的产品,线程构建块,其中包含许多并行处理的容器和算法。

Boost Compute绝对是亚军。

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