【问题标题】:Speed of iterating through 1-dimensional vs 2-dimensional arrays迭代一维数组与二维数组的速度
【发布时间】:2013-09-13 08:51:09
【问题描述】:

我正在阅读一篇文章,内容是由于数据的存储方式,水平迭代二维数组比垂直迭代更快(参见:Fastest way to loop through a 2d array?)。当我阅读答案时这是有道理的,但它让我想知道 2 维数组和 1 维数组之间有什么区别。使用相同数量的单元格迭代一维数组和二维数组是否有速度差异?

【问题讨论】:

标签: java arrays performance


【解决方案1】:

在 Java 上,数组有更多的因素和更多的开销。由于数组是对象,int[][]ints 的数组对象数组。如果热点优化或缓存数组访问,这可能会使水平迭代比垂直迭代更快。

对于一维与二维,一维会更快,因为它是数组查找和原始与数组查找、数组对象引用的取消引用,然后在 that中查找> 数组。

但是,这种微优化不一定是时间的最佳利用,因为可能还有更好的地方可以改进。

【讨论】:

  • 稍微快一点
  • @SamIam 在这种情况下有点夸大其词。
猜你喜欢
  • 1970-01-01
  • 2022-11-27
  • 2011-12-28
  • 2015-04-04
  • 2014-05-30
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
相关资源
最近更新 更多