【发布时间】:2018-01-26 14:53:53
【问题描述】:
是否有任何可靠的测试可以清楚地显示访问和写入嵌套向量与 C++ 的内置数组之间的性能差异?我听说与访问单个数组中的元素(所有元素都存储在连续内存中)相比,使用嵌套(多维)向量通常会产生一些性能开销,但这对我来说似乎都是假设的。我还没有看到任何实际显示这些差异的测试。它们很重要吗?我确信这取决于场景,但作为一个没有经验的程序员,我不太确定这些差异在什么程度上会变得显着。
【问题讨论】:
-
嵌套
vector的空间局部性差对缓存的性能影响绝对令人震惊。这里有多么痛苦的好例子:blog.codinghorror.com/the-infinite-space-between-words 留意它,但不要过早恐慌。 -
另一个性能影响是创建:一个大的分配与几个较小的分配。
标签: c++ arrays multidimensional-array vector