Browse Source

Sha256 performance test.

Margers 3 months ago
parent
commit
e5996bcf5f
1 changed files with 34 additions and 0 deletions
  1. 34 0
      packages/fcl-hash/examples/sha256performancetest.pas

+ 34 - 0
packages/fcl-hash/examples/sha256performancetest.pas

@@ -0,0 +1,34 @@
+program sha256performancetest;
+
+{$mode objfpc}{$H+}
+
+uses
+  {$IFDEF UNIX}{$IFDEF UseCThreads}
+  cthreads,
+  {$ENDIF}{$ENDIF}
+  SysUtils,Classes,fpsha256;
+
+var
+  StartTime: TDateTime;
+  EndTime: TDateTime;
+  i: integer;
+  s,ss: AnsiString;
+  SB : TBytes;
+begin
+  writeln('SHA256 of a million "a" symbols');
+  Writeln('compile fpsha256 unit with -dSHA256PASCAL to use generic pascal implementation');
+  SetLength(s, 1000000);
+  for i := 1 to 1000000 do s[i] := 'a';
+  SB:=TEncoding.UTF8.GetAnsiBytes(S);
+
+  StartTime:=now;
+  for i := 0 to 1000 do
+  begin
+    TSHA256.DigestHexa(SB, ss);
+    ss := LowerCase(ss);
+  end;
+  EndTime:=now;
+  writeln('SHA256: ',ss);
+  write('Performance test finished. Elapsed time: ');
+  writeln((EndTime-StartTime)*3600*24:0:3,' s');
+end.