int i=1000000000;
int j=1000000000;
double a,b,c,d,e;

for(i=0;i<10000000;i++)
{
for(j=0;j<100;j++)
{
a=100.12341234;
b=122.12341234;
c=a*b;
d=a/b;
e=a+b;
e=a-b;
}
}

解决方案 »

  1.   

     不显示删除回复显示所有回复显示星级回复显示得分回复 有关java和c++ 执行效率,以下代码java要10秒左右,vc6下debug版要33秒,而release基本不费时间,在1ms下就可算完,请大家来讨论一下为什么?费解中
    int i=1000000000;
    int j=1000000000;
    double a,b,c,d,e;for(i=0;i<10000000;i++)
    {
    for(j=0;j<100;j++)
    {
    a=100.12341234;
    b=122.12341234;
    c=a*b;
    d=a/b;
    e=a+b;
    e=a-b;
    }
    }
      

  2.   

    java不清楚
    vc的debug是按你写的程序来算的
    而release会将你的程序进行优化,即只算了一次b,c,d,e,因即就基本上不用时间了
      

  3.   

    release效率最高,其次应该是C吧。其实,java是纯面向对象的,所以效率应该两者低的。
      

  4.   

    难理解之处还在于debug版比java还要慢,难道java编译出的东西比c还快了?
      

  5.   

    同样 ,我把程序改为
    a=100.12341234+i;
    b=122.12341234+j;
    release效率同样高得惊人,<1ms
    也解释不通啊
      

  6.   


    不是,只是 Java 中针对 int 计算做了优化,对于 int 计算来说 Java 比 C 快,其他的数据类型就不是了。
      

  7.   

    同样 ,我把程序改为
    a=100.12341234+i;
    b=122.12341234+j;在我的vc6中改为release的确如此,就是很快,不费时间的
      

  8.   

    若将程序变成
    int i=1000000000;
    int j=1000000000;
    double a,b,c,d,e=0;

    for(i=0;i<10000000;i++)
    {
    for(j=0;j<100;j++)
    {
    a=100.12341234+i;
    b=122.12341234+j;
    c=a*b;
    d=a/b;
    e+=c+d;
    }
    }
    java 费时11秒,vc6 debug 费时48秒, release费时11秒