试验证明:VC比Delphi6快多了!?(50分)

  • 主题发起人 主题发起人 HunterHua
  • 开始时间 开始时间
H

HunterHua

Unregistered / Unconfirmed
GUEST, unregistred user!
我为了验证VC++6.0快,还是Delphi6快?,做了以下试验:
Delphi6代码为:
var
i,j: Integer;
t1,t2: DWord;
begin
t1 := GetTickCount();
for i := 0 to 999 do
begin
for j := 0 to 9 do
Edit1.Text := IntToStr(I);
Edit1.Refresh;
end;
t2 := GetTickCount() - t1;
Edit2.Text := IntToStr(t2);

VC6代码为:
int i;
int j;
DWORD t1,t2;
CEdit* pEdit;
CEdit* pEdit2;
pEdit = (CEdit*)(GetDlgItem(IDC_EDIT1));
pEdit2 = (CEdit*)(GetDlgItem(IDC_EDIT2));
t1 = GetTickCount();
for (i=0;i<1000;i++)
{
for (j=0;j<10;j++)

m_Show = i;
UpdateData(FALSE);
pEdit->UpdateWindow();
}
t2 = GetTickCount() - t1;
SetDlgItemInt(IDC_EDIT2,t2,TRUE);
pEdit2->UpdateWindow();
结果显示为vc需时832ms;D6需时1242ms;
该程序有无代表性,可否认为vc比delphi快得多?

 
好像列宁说过一句话:鹰有时会飞得比鸡低,但鸡永远不会飞得比鹰高。
vc 和 delphi就是这样!
 
用IntToStr当然费时了
 
var
i,j: Integer;
t3:string;
t1,t2: DWord;
begin
t1 := GetTickCount();
for i := 0 to 999 do
begin
for j := 0 to 9 do
t3 := IntToStr(I);
edit1.text:=t3;
// Edit1.Refresh;
end;
t2 := GetTickCount() - t1;
Edit2.Text := IntToStr(t2);
再试试多少妙?[:D]
 
为什么?
 
这样的代码根本比较不出来
 
VC遗留症
pEdit2->UpdateWindow(); VS Edit1.Refresh;

想当年,试学VC,pEdit2的标题如何也不能改动,后来发现居然还要一句UpdateWindow

帖主估计是先学VC,后学DELPHI吧。

 
我觉得应该是VC快,好多程序VC的代码量和执行程序的大小都比较小
 
Borland的编译技术是超一流的,靠编译技术
borland才能立于不败之地。
楼主的vc里没有整数转换到字符再赋给edit的代码。
其实你只要看看他们各自编译出的机器码就知道
谁好谁坏了。
 
运行速度我同意VC比delphi快,不然专业的游戏都用delphi拉!
不过开发速度来说delphi比vc快很多很多,而且调试都比它方便
 
我是在用delphi时发现用Refresh后慢了很多,故学了点vc,作此速度对比.
Delphi的编译速度确实比VC快,易比VC容易学,但执行速度?
此例中,Delphi用了Refresh,VC亦有UpdateWindow;
Delphi多了转化IntToSTr,VC不用,故改为不用inttostr,
而用API: SetDlgItemInt(...),发现速度慢得难以接受了.
而vc改用SetDlgItemInt(...)
(不用 m_Show = i; UpdateData(FALSE);)
却性能无明显不同.
 
Edit1.Refresh;
改成
Edit1.Update;
再试试?

两者无可比性!就是有差距,也不可能这么大的。
 
差距不会有这么大吧|
你把edit控件换成progressbar结果就不会有这么大的差距
 
后退
顶部