close
Delphi XE4的新功能,在宣告String後就相當於一個物件,有一些方法可以操作,像是常用的Length, ToLower, ToUpper等方法,與Java, C#之類的語言相同。之前的版本是使用function/procedure進行這些操作,所以寫個測試程式看看速度相差多少。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
Winapi.Windows;
var
S, T: String;
I, t0, t1: Integer;
L: Integer;
begin
try
t0 := GetTickCount;
S := '1234567890';
for I := 0 to 999999 do
begin
T := S.ToLower;
T := S.ToUpper;
end;
t1 := GetTickCount;
WriteLn(IntToStr(t1 - t0) + 'ms');
t0 := GetTickCount;
S := '1234567890';
for I := 0 to 999999 do
begin
T := LowerCase(S);
T := UpperCase(S);
end;
t1 := GetTickCount;
WriteLn(IntToStr(t1 - t0) + 'ms');
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
Win32 Release:
String method:515ms
function: 78ms
所以看來這個功能雖然讓Object Pascal更像是一個純物件導向語言,但速度更慢,追求速度應該還是繼續使用原本的方法,這樣與之前版本相容性更好。Free Pascal也沒支援這個特性。
全站熱搜
留言列表