md5performancetest.pas 778 B

12345678910111213141516171819202122232425262728293031323334
  1. program md5performancetest;
  2. {$mode objfpc}{$H+}
  3. uses
  4. {$IFDEF UNIX}
  5. cwstring,
  6. {$IFDEF UseCThreads}
  7. cthreads,
  8. {$ENDIF}
  9. {$ENDIF}
  10. SysUtils,Classes,md5,dateutils;
  11. var
  12. StartTime: TDateTime;
  13. EndTime: TDateTime;
  14. i: integer;
  15. TimeTaken: string;
  16. s,ss: RawByteString;
  17. begin
  18. writeln('MD5 of a million "a" symbols');
  19. Writeln('x86 only: compile md5 unit with -dMD5SLOW to use unoptimized original version');
  20. SetLength(s, 1000000);
  21. for i := 1 to 1000000 do s[i] := 'a';
  22. StartTime:=now;
  23. for i := 0 to 1000 do
  24. ss := LowerCase(MDPrint(MDString(s, MD_VERSION_5)));
  25. EndTime:=now;
  26. writeln('Performance test finished. Elapsed time:');
  27. DateTimeToString(TimeTaken, 'S.ZZ', EndTime-StartTime);
  28. WriteLn('Average time taken = ', TimeTaken, ' ms');
  29. end.