sha256performancetest.pas 767 B

12345678910111213141516171819202122232425262728293031323334
  1. program sha256performancetest;
  2. {$mode objfpc}{$H+}
  3. uses
  4. {$IFDEF UNIX}{$IFDEF UseCThreads}
  5. cthreads,
  6. {$ENDIF}{$ENDIF}
  7. SysUtils,Classes,fpsha256;
  8. var
  9. StartTime: TDateTime;
  10. EndTime: TDateTime;
  11. i: integer;
  12. s,ss: AnsiString;
  13. SB : TBytes;
  14. begin
  15. writeln('SHA256 of a million "a" symbols');
  16. Writeln('compile fpsha256 unit with -dSHA256PASCAL to use generic pascal implementation');
  17. SetLength(s, 1000000);
  18. for i := 1 to 1000000 do s[i] := 'a';
  19. SB:=TEncoding.UTF8.GetAnsiBytes(S);
  20. StartTime:=now;
  21. for i := 0 to 1000 do
  22. begin
  23. TSHA256.DigestHexa(SB, ss);
  24. ss := LowerCase(ss);
  25. end;
  26. EndTime:=now;
  27. writeln('SHA256: ',ss);
  28. write('Performance test finished. Elapsed time: ');
  29. writeln((EndTime-StartTime)*3600*24:0:3,' s');
  30. end.