【发布时间】:2010-09-20 23:05:15
【问题描述】:
原始数组上的 for 循环之间是否存在性能差异?
假设:
double[] doubleArray = new double[300000];
for (double var: doubleArray)
someComplexCalculation(var);
或:
for ( int i = 0, y = doubleArray.length; i < y; i++)
someComplexCalculation(doubleArray[i]);
测试结果
我实际上分析了它:
Total timeused for modern loop= 13269ms
Total timeused for old loop = 15370ms
所以现代循环实际上运行得更快,至少在我的 Mac OSX JVM 1.5 上是这样。
【问题讨论】:
-
这会占用多少内存。 80GB?
-
我写的时候实际上并没有想到...但是是的。 80Gb
-
其实它不会编译,因为 10000000000 不是 int。
-
+1 用于自己分析。
标签: java performance arrays iteration