Delphi7 比 VC++6.0 同样的简单算法下,执行速度还略好些,
可Delphi2009 比 VC++2005 就差了很多 [与Delphi7,VC++6.0差不多],
而从VC++6.0 到 VC++2005,同样的C++代码编译出的exe文件执行速度有很大改进;是我编译选项设置得有问题,还是Delphi编译器这两年进步就是不多?测试对象: 10^8 次两整数取模(int1 mod int2),计时用:GetTickCount
编译选项:所有的编译器都是默认Release
但愿是我编译选项设置得有问题,希望Delphi能跑得更快!!

解决方案 »

  1.   


    真高
    Delphi编译器已经够快的了
      

  2.   

    我也怀疑我搞错了,可我机器上跑的结果就是这样的阿?
    是不是Delphi编译选项我选的不对?DELPHI 代码:
    ----------------------------------------------------------------
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,j,k: integer;
      i1, i2, i3: int64;
    begin
           i := 0;
           j := 0;
           k := 0;       i1 := gettickcount();
                for  i := 0 to 10000 do
                begin
                    for j := 0 to 10000 do
                    begin
                        if j mod 2 = 0 then
                          inc(k);
                    end;
                end;
                i2 := gettickcount();
                i3 := i2-i1;
                showmessage(inttostr(i3)+' '+inttostr(k));
    end;
    ----------------------------------------------------------------C++ 代码:void fooFxn(){
        int i = 0;
        int j = 0;
        int k = 0;    unsigned long i1 = GetTickCount();    for (i = 0; i < 10001; i++)
            for (j = 0; j < 10001; j++)
            {
              if (j % 2 == 0)
         k++;
            } unsigned long i2 = GetTickCount();
        unsigned long i3 = i2-i1;    printf("%d,%d\n", i3, k);
    }
    ------------------------------------------------------------
    delphi 是用 delphi2009编译的
    C++    是用 VC2005编译的如果是我的代码或者设置有问题,请帮忙指出来,谢谢。我也希望Delphi越来越快,越来越好