c++ - STL 的高性能替代品?

标签 c++ stl

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

我不是在寻找基于官方标准的 STL 实现,它可以基于它或者是具有高性能数据结构的扩展 STL。或者只是一个提供通用数据结构(如列表、 map 等)的库。

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

我对链接和许可证感兴趣。

我读过有关 EASTL 的资料,之前也使用过 Boost。

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

最佳答案

+1 代表 EASTL。

由于移动语义,任何基于 C++11 兼容编译器的东西都可能表现得更好。

使用 -std=c++0x 的 GNU libstdc++ 实现可以看出这种差异

对于并发/无锁容器,我推荐:

  • libCds作者:马克斯·希辛斯基
  • 来自英特尔的 TBB(无实践经验)

我的核心建议是这样的:

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

只需仔细观察您的返回值/输出参数(更喜欢使用输出迭代器,并使用transformpartial_sumaccumulate 到容器中适本地调用了 reserveresize;为您的元素类型定义 swap 等)

关于c++ - STL 的高性能替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236193/

相关文章:

c++ - std::equal 与 reverse_iterator

c++ - 关于c++继承的困惑

c++ - 查找 C++ 容器中唯一的一个元素

c++ - 具有反向和 pop/push_back 成本的 STL vector

c++ - 未捕获的异常——调试技巧(C++)

c++ - 为什么我必须始终明确指定 STL 算法函数中的范围,即使我想在整个容器上工作?

c++ - std::vector 是否有转换运算符?我看到了什么?

c++ - qt有没有watch变量调试功能

c++ - crtp父访问姐妹类

C++双向链表 "delete tail"函数