|
@@ -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.
|