fpc/packages/hash/examples/md5performancetest.pas
2023-10-14 12:35:20 +00:00

35 lines
778 B
ObjectPascal

program md5performancetest;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}
cwstring,
{$IFDEF UseCThreads}
cthreads,
{$ENDIF}
{$ENDIF}
SysUtils,Classes,md5,dateutils;
var
StartTime: TDateTime;
EndTime: TDateTime;
i: integer;
TimeTaken: string;
s,ss: RawByteString;
begin
writeln('MD5 of a million "a" symbols');
Writeln('x86 only: compile md5 unit with -dMD5SLOW to use unoptimized original version');
SetLength(s, 1000000);
for i := 1 to 1000000 do s[i] := 'a';
StartTime:=now;
for i := 0 to 1000 do
ss := LowerCase(MDPrint(MDString(s, MD_VERSION_5)));
EndTime:=now;
writeln('Performance test finished. Elapsed time:');
DateTimeToString(TimeTaken, 'S.ZZ', EndTime-StartTime);
WriteLn('Average time taken = ', TimeTaken, ' ms');
end.