我在主函数中测试for循环中是++快还是--快
出现了一个问题比如说
long t1 = System.currentTimeMillis();
for(int i=0 ;i<200000000; i++)
long t2 = System.currentTimeMillis();
System.out.print(t2-t1);
如果上面的循环若是执行两遍的话,下面的循环用的时间是上面循环所用时间的50%
后来又做了一个测试
在一个for循环后面,在加上一个while循环
循环次数是一样的,后面的while循环也是上面的50%左右
实在是想不出来到底是什么原因,谢谢好心人帮助解决一下!

解决方案 »

  1.   

    //测试++
    long t1 = System.currentTimeMillis();
    for(int i=0 ;i<200000000; i++)
    ;//你少了一个分号;
    long t2 = System.currentTimeMillis();
    System.out.print(t2-t1);//测试--
    long t1 = System.currentTimeMillis();
    for(int i=200000000 ;i>0; i--)
    ;//分号
    long t2 = System.currentTimeMillis();
    System.out.print(t2-t1);不知是否合乎楼主的要求?
      

  2.   

    对,我说的就是这样的两个循环
    但是,如果这样的两个循环
    long t1 = System.currentTimeMillis();
    for(int i=0 ;i<200000000; i++)
    ;//你少了一个分号;
    long t2 = System.currentTimeMillis();
    System.out.print(t2-t1);long t3 = System.currentTimeMillis();
    for(int i=0 ;i<200000000; i++)
    ;//你少了一个分号;
    long t4 = System.currentTimeMillis();
    System.out.print(t4-t3);其实一样的循环,执行了两次,但是,时间却相差特别大,不知道为什么!
      

  3.   

    这是我的运行结果,没有差多少的啊。
    第一次:
    1312
    1322
    Press any key to continue...
    第二次:
    1372
    1321
    Press any key to continue...
    第三次:
    1402
    1342
    Press any key to continue...我也感觉是有点奇怪,为什么越执行所需要的时间越长?
    应该执行一次,写入了缓存,下次执行就快了啊。
      

  4.   

    第一次
    641
    296
    第二次
    625
    344
    第三次
    641
    312
    不知道差距为什么这么大
    我机器配置p4 2.8 700MB