首页 > 编程语言 > 详细

Java For循环效率测试

时间:2014-07-29 15:17:08      阅读:343      评论:0      收藏:0      [点我收藏+]

很奇怪的结果!!!!


测试程序如下

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 For循环效率测试,布布扣,bubuko.com

Java For循环效率测试

原文:http://blog.csdn.net/wscem/article/details/38266457

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!