program test;
{$MODE OBJFPC}{$H+}
uses
SysUtils, DateUtils, ge_external_Utils;
var
a: TStringArray = nil;
ua: array of unicodestring = nil;
procedure GenAnsiData;
var
I: Integer;
const
TestSize = 1000;
begin
SetLength(a, TestSize);
for I := 0 to High(a) do
a[I] := Random(High(Int64)).ToString;
end;
procedure GenUniData;
var
I: Integer;
const
TestSize = 1000;
begin
SetLength(ua, TestSize);
for I := 0 to High(ua) do
ua[I] := unicodestring(Random(High(Int64)).ToString);
end;
procedure RunAscii;
var
I, J: Integer;
Start: TTime;
Score: Int64;
v: QWord;
begin
Start := Time;
for J := 1 to 30000 do
for I := 0 to High(a) do
sc_StrToQWord(a[I], v);
Score := MillisecondsBetween(Time, Start);
WriteLn('sc_StrToQWord ansi, score: ', Score);
end;
procedure RunUni;
var
I, J: Integer;
Start: TTime;
Score: Int64;
v: QWord;
begin
Start := Time;
for J := 1 to 30000 do
for I := 0 to High(ua) do
sc_StrToQWord(ua[I], v);
Score := MillisecondsBetween(Time, Start);
WriteLn('sc_StrToQWord unicode, score: ', Score);
end;
begin
Randomize;
GenAnsiData;
RunAscii;
WriteLn;
GenUniData;
RunUni;
WriteLn;
WriteLn('Press enter to exit...');
ReadLn;
end.