Java For循环效率试验
2024-10-10 05:32:16
非常奇怪的结果!
。。!
测试方法如以下
public class Main { public static void main(String[] args){ long ti = System.currentTimeMillis();
for(int i=Integer.MIN_VALUE;i<Integer.MAX_VALUE;i++){
if(i==i) continue;
}
System.out.println(System.currentTimeMillis()-ti); ti = System.currentTimeMillis();
for(int i=Integer.MIN_VALUE;i<Integer.MAX_VALUE;i++){
continue;
}
System.out.println(System.currentTimeMillis()-ti);
} }
输出结果
6
1320
问题1:
在for循环中增加推断后,循环运行的时间居然差这么多。。
以上是问题,看以下这个測试,你会发现更有意思
public class Main { public static void main(String[] args){ long ti = System.currentTimeMillis();
long c = 0;
for(int i=Integer.MIN_VALUE;i<Integer.MAX_VALUE;i++){
c++;
if(i==i) continue;
}
System.out.println(System.currentTimeMillis()-ti + " "+c); ti = System.currentTimeMillis();
c=0;
for(int i=Integer.MIN_VALUE;i<Integer.MAX_VALUE;i++){
c++;
continue;
}
System.out.println(System.currentTimeMillis()-ti+ " "+c);
} }
相同输出
93 4294967295
7847 4294967295 不过在循环内做了一次++操作,耗时居然添加了近10倍! 不得不说,java!你的执行效率实在是慘不忍睹。 。。 。 java版本号: javac 1.7.0_25
求解释:
在for循环中增加推断与不加推断,运行时间相差为什么会相差200倍?!
-------------------------------------------------------------------------------------------------
今天又測试一次,java版本号不知道什么时候变成了这个样子: javac 1.7.0_55 结果不再和上次測试一样,看来上次是遇到bug了。
。
不知道java当自己升级。。
版权声明:本文博主原创文章。博客,未经同意,不得转载。
最新文章
- Linux NFS服务器的安装与配置
- Angular 2 要来了,Wijmo 已准备好迎接
- 百度地图API示例之设置级别setZoom与禁止拖拽disableDragging
- ci创建zip
- MongoDB概念解析
- Markdown 编辑器语法指南
- 打开本地html的一些设置
- (原)ubuntu14.04中安装gcc4.9和g++4.9
- poj1220:高精度进制转换模板题
- Android 开发笔记 “android调试遇到ADB server didn&#39;t ACK以及顽固的sjk_daemon进程 ”
- ubuntu中出现警告:Gtk-WARNING**: 无法在模块路径中找到主题引擎:“pixmap”
- [Windows Phone 8]如何解决Lumia手机无法进入系统或开启?
- hancher57公众号突破3000人
- iOS 组件化
- PhiloGL学习(5)——神说要有光,便有了光
- 对Linux0.11 中 进程0 和 进程1分析
- 解决 Intellij IDEA Cannot Resolve Symbol ‘XXX’ 问题
- 【css】垂直居中的几种写法
- flask重要点
- Array.prototype.removeBeginWithVal(删除数组内以某值开头的字符串对象)