zoukankan      html  css  js  c++  java
  • 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倍?!

    -------------------------------------------------------------------------------------------------

    今天又測试一次,java版本号不知道什么时候变成了这个样子: javac 1.7.0_55    结果不再和上次測试一样,看来上次是遇到bug了。

     不知道java当自己升级。。


    版权声明:本文博主原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    头信息已输出的报错信息位置定位
    阅读<php程序设计>笔记
    include、ruquire使用相对路径总结
    php中未定义的变量使用技巧
    Oracle官方教材(9i、10G及App 11i)
    Vista的软件兼容性
    轻松找回Vista序列号
    oralce定时执行存储过程任务设置步骤详细
    今天做了内存测试,发现真的是内存问题导致的一连串的问题
    网络邮盘(GMailStore) V3.0.2
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4757791.html
Copyright © 2011-2022 走看看