除了传统的STL,还有哪些缓存友好的高性能替代方案。它们应该针对现代64位Intel/AMD CPU的缓存进行优化。
我并不是在寻找基于官方标准的STL实现,它可能是基于此的,也可能是一个具有高性能数据结构的扩展STL。或者仅仅是一个库,它提供了通用的数据结构,如列表、映射等。
高并发和无锁的数据结构将是一个额外的好处。
我感兴趣的是一个链接&一个许可证。
我读过关于EASTL的文章,以前也用过Boost。
目前,游戏开发人员和科学界正在使用什么来最大限度地利用CPU?正在进行中的是什么?
发布于 2011-11-23 09:20:06
EASTL为+1。
由于move语义的原因,任何基于C++11兼容编译器的东西都有可能执行得更好。
这种差异在使用-std=c++0x的GNU libstdc++实现中已经很明显了
对于并发/无锁容器,我推荐:
我的核心建议是这样的:
优化标准库主要是决定如何正确使用算法/容器的一个因素,而不是寻找“完美”的实现。STL是通用的,永远不会有一个完美的实现。
只需密切关注返回值/输出参数(更喜欢使用输出迭代器,并将transform、partial_sum、accumulate用于适当调用了reserve或resize的容器中;为您的元素类型等定义swap )。
发布于 2011-11-23 09:26:08
我相信标准模板自适应并行库STAPL很可能是目前最重要的研究合作之一。
微软在Asynchronous Agents Library上投入了大量的精力,它有许多经过充分测试的高性能容器,用于消息传递。
英特尔有自己的产品Thread Building Blocks,其中包含许多用于并行处理的容器和算法。
发布于 2014-11-17 22:04:44
Boost Compute绝对是一个亚军。
https://stackoverflow.com/questions/8236193
复制相似问题