黑马程序员技术交流社区

标题: 修改一个字母,可以使代码的执行效率提高5倍 [打印本页]

作者: 来到精彩世界    时间: 2016-11-27 17:40
标题: 修改一个字母,可以使代码的执行效率提高5倍
请仔细看下面两段代码(只有一个字母的差异)
long t = System.currentTimeMillis();
Long sum = 0L;
for (long i = 0; i < Integer.MAX_VALUE; i++) {
sum += i;   //自动装箱
}
System.out.println("耗时: " + (System.currentTimeMillis() - t) + " ms") ;
结果如下:

耗时: 6756 ms

long t = System.currentTimeMillis();
//Long sum = 0L;
long sum = 0L;
for (long i = 0; i < Integer.MAX_VALUE; i++) {
sum += i;
}
System.out.println("耗时: " + (System.currentTimeMillis() - t) + " ms") ;
结果如下:

耗时: 1248 ms

我们大致可以看出,下面的代码比上面的执行效率提高了5倍,我们可以将这种差异解释为对自动装箱功能的滥用。
我们可以说第一段代码已经被修改为下面的代码。所以我们可以利用转化后的代码(创建了不必要的“Long”实例)来解释处理速度变慢的原因。

long t = System.currentTimeMillis();
Long sum = 0L;
for (long i = 0; i < Integer.MAX_VALUE; i++) {
sum += new Long(i);  }
System.out.println("耗时: " + (System.currentTimeMillis() - t) + " ms") ;

作者: mjchzhl    时间: 2016-11-27 17:47
确实差别有点大

作者: lieyemu    时间: 2016-11-27 23:05
6666666666666
作者: kevin0    时间: 2016-11-27 23:54
一脸懵逼,

作者: FAN8210    时间: 2016-11-28 07:13
看不明白,没学到。太讨厌不遵守交规的死机了,堵路。我坚决支持,乱走道,罚分,一个3分。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2