16,748
社区成员
发帖
与我相关
我的任务
分享
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Command1_Click()
Dim G As Long
Dim TT As Long
Dim i As Long
TT = GetTickCount()
G = 1
For i = 1 To 10000000 Step 1
If G < &HFFFFFF Then
G = G * 2
Else
G = G / 2
End If
Next
Me.Caption = "G=" + Str(G) + " 耗时:" + Str(GetTickCount - TT)
End Sub
var
G: Integer;
TT: Longint;
i: Integer;
begin
TT := GetTickCount;
G := 1;
for i := 1 to 10000000 do
begin
if G< $FFFFFF then
G := G * 2
else
G := G div 2;
end;
Caption := 'G='+ FloatToStr(G) + ' 耗时: '+ Inttostr(GetTickCount - TT);
end;
但是Delphi64反而比Delphi32慢一些....
Delphi32 Delphi64 VB6
15 45 171
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Command1_Click()
Dim G As Double
Dim TT As Long
Dim i As Long
TT = GetTickCount()
G = 1
For i = 1 To 10000000 Step 1
G = G * 0.999
Next
Me.Caption = "G=" + Str(G) + " 耗时:" + Str(GetTickCount - TT)
End Sub
var
G: double;
TT: Longint;
i: Integer;
begin
TT := GetTickCount;
G := 1;
for i := 1 to 10000000 do
begin
G := G * 0.999;
end;
Caption := 'G='+ FloatToStr(G) + ' 耗时: '+ Inttostr(GetTickCount - TT);
end;