首页 > 代码库 > Java For循环效率测试
Java For循环效率测试
很奇怪的结果!!!!
测试程序如下
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倍?!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。