锯齿数组和扁平化数组,哪个性能更好?

4
我们都知道,锯齿数组比多维数组性能更好,但是锯齿数组和扁平数组呢?
我的直觉是它们应该表现大致相同。这是因为它们都是直接访问,不像多维数组需要在访问元素之前进行一些操作。
我是对的吗?
1个回答

4

最大的区别在于扁平化数组具有的优势是您只需要执行一次内存访问来获取或设置一个值。 在嵌套数组中,您需要进行两次内存访问:一次在外部数组上,一次在内部数组上。

扁平化数组可能也比嵌套数组表现更好,因为它将以连续方式分配在内存中。 这意味着可能会提高性能的引用位置和CPU缓存局部性。在嵌套数组中,无法保证每个子数组都靠近内存分配,这将限制缓存局部性的好处。

实际上,回答性能问题的唯一方法是尝试两种方式并测量结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接