-2

我一直认为 c 数组会比 C++ 中的 std::array 更快,但我已经根据访问速度做了一些基准测试,看起来 std::array 更快。这是为什么?

4

1 回答 1

5

答案是“视情况而定”,或者更确切地说是“没人知道”,因为这类问题总是与编译器优化、处理器架构和许多其他因素紧密相关。

我还想指出,如果您在一个系统上找到一个更好的,它可能不会反映它在不同的情况下更好 - 例如不同的编译器或不同的处理器或不同的操作系统。如果整体解决方案非常相似 [我相信他们在这种情况下],代码生成的微小差异或处理器架构的差异可能会改变任一方向的结果。或者例如内存分配与缓存行或虚拟内存页面的对齐情况如何避免“额外工作”。

总是在讨论性能时,永远不要猜测,不要在互联网上询问。测量所有选项,再次测量所有选项(在其他平台上,不同的编译器选项等),然后决定哪个更好[假设代码首先对性能至关重要]。

于 2013-01-29T13:46:17.107 回答