Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 139 additions & 0 deletions HashLib.Benchmark/Delphi/PerformanceBenchmarkConsole.dpr
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
program PerformanceBenchmarkConsole;

{$APPTYPE CONSOLE}

uses
Classes,
SysUtils,
uPerformanceBenchmark in '..\src\Core\uPerformanceBenchmark.pas',
HlpCRC in '..\..\HashLib\src\Checksum\HlpCRC.pas',
HlpICRC in '..\..\HashLib\src\Interfaces\HlpICRC.pas',
HlpBitConverter in '..\..\HashLib\src\Utils\HlpBitConverter.pas',
HlpGrindahl512 in '..\..\HashLib\src\Crypto\HlpGrindahl512.pas',
HlpGrindahl256 in '..\..\HashLib\src\Crypto\HlpGrindahl256.pas',
HlpHashFactory in '..\..\HashLib\src\Base\HlpHashFactory.pas',
HlpCRC32Fast in '..\..\HashLib\src\Checksum\HlpCRC32Fast.pas',
HlpCRC64 in '..\..\HashLib\src\Checksum\HlpCRC64.pas',
HlpCRC32 in '..\..\HashLib\src\Checksum\HlpCRC32.pas',
HlpBlake2B in '..\..\HashLib\src\Crypto\HlpBlake2B.pas',
HlpFNV64 in '..\..\HashLib\src\Hash64\HlpFNV64.pas',
HlpBits in '..\..\HashLib\src\Utils\HlpBits.pas',
HlpConverters in '..\..\HashLib\src\Utils\HlpConverters.pas',
HlpSHA3 in '..\..\HashLib\src\Crypto\HlpSHA3.pas',
HlpIHashInfo in '..\..\HashLib\src\Interfaces\HlpIHashInfo.pas',
HlpHashBuffer in '..\..\HashLib\src\Base\HlpHashBuffer.pas',
HlpSnefru in '..\..\HashLib\src\Crypto\HlpSnefru.pas',
HlpHash in '..\..\HashLib\src\Base\HlpHash.pas',
HlpXXHash32 in '..\..\HashLib\src\Hash32\HlpXXHash32.pas',
HlpXXHash64 in '..\..\HashLib\src\Hash64\HlpXXHash64.pas',
HlpHashCryptoNotBuildIn in '..\..\HashLib\src\Base\HlpHashCryptoNotBuildIn.pas',
HlpHMACNotBuildInAdapter in '..\..\HashLib\src\Base\HlpHMACNotBuildInAdapter.pas',
HlpPBKDF2_HMACNotBuildInAdapter in '..\..\HashLib\src\KDF\HlpPBKDF2_HMACNotBuildInAdapter.pas',
HlpPBKDF_Argon2NotBuildInAdapter in '..\..\HashLib\src\KDF\HlpPBKDF_Argon2NotBuildInAdapter.pas',
HlpArgon2TypeAndVersion in '..\..\HashLib\src\KDF\HlpArgon2TypeAndVersion.pas',
HlpPBKDF_ScryptNotBuildInAdapter in '..\..\HashLib\src\KDF\HlpPBKDF_ScryptNotBuildInAdapter.pas',
HlpPanama in '..\..\HashLib\src\Crypto\HlpPanama.pas',
HlpAdler32 in '..\..\HashLib\src\Checksum\HlpAdler32.pas',
HlpAP in '..\..\HashLib\src\Hash32\HlpAP.pas',
HlpBernstein in '..\..\HashLib\src\Hash32\HlpBernstein.pas',
HlpBernstein1 in '..\..\HashLib\src\Hash32\HlpBernstein1.pas',
HlpBKDR in '..\..\HashLib\src\Hash32\HlpBKDR.pas',
HlpBlake2S in '..\..\HashLib\src\Crypto\HlpBlake2S.pas',
HlpCRC16 in '..\..\HashLib\src\Checksum\HlpCRC16.pas',
HlpDEK in '..\..\HashLib\src\Hash32\HlpDEK.pas',
HlpDJB in '..\..\HashLib\src\Hash32\HlpDJB.pas',
HlpELF in '..\..\HashLib\src\Hash32\HlpELF.pas',
HlpFNV in '..\..\HashLib\src\Hash32\HlpFNV.pas',
HlpFNV1a in '..\..\HashLib\src\Hash32\HlpFNV1a.pas',
HlpFNV1a64 in '..\..\HashLib\src\Hash64\HlpFNV1a64.pas',
HlpGost in '..\..\HashLib\src\Crypto\HlpGost.pas',
HlpGOST3411_2012 in '..\..\HashLib\src\Crypto\HlpGOST3411_2012.pas',
HlpHAS160 in '..\..\HashLib\src\Crypto\HlpHAS160.pas',
HlpHashLibTypes in '..\..\HashLib\src\Utils\HlpHashLibTypes.pas',
HlpHashResult in '..\..\HashLib\src\Base\HlpHashResult.pas',
HlpHashRounds in '..\..\HashLib\src\Base\HlpHashRounds.pas',
HlpHashSize in '..\..\HashLib\src\Base\HlpHashSize.pas',
HlpHaval in '..\..\HashLib\src\Crypto\HlpHaval.pas',
HlpBlake2BP in '..\..\HashLib\src\Crypto\HlpBlake2BP.pas',
HlpBlake2SP in '..\..\HashLib\src\Crypto\HlpBlake2SP.pas',
HlpBlake3 in '..\..\HashLib\src\Crypto\HlpBlake3.pas',
HlpIHash in '..\..\HashLib\src\Interfaces\HlpIHash.pas',
HlpIHashResult in '..\..\HashLib\src\Interfaces\HlpIHashResult.pas',
HlpIKDF in '..\..\HashLib\src\Interfaces\HlpIKDF.pas',
HlpJenkins3 in '..\..\HashLib\src\Hash32\HlpJenkins3.pas',
HlpJS in '..\..\HashLib\src\Hash32\HlpJS.pas',
HlpKDF in '..\..\HashLib\src\Base\HlpKDF.pas',
HlpMD2 in '..\..\HashLib\src\Crypto\HlpMD2.pas',
HlpMD4 in '..\..\HashLib\src\Crypto\HlpMD4.pas',
HlpMD5 in '..\..\HashLib\src\Crypto\HlpMD5.pas',
HlpMDBase in '..\..\HashLib\src\Crypto\HlpMDBase.pas',
HlpMultipleTransformNonBlock in '..\..\HashLib\src\Base\HlpMultipleTransformNonBlock.pas',
HlpMurmur2 in '..\..\HashLib\src\Hash32\HlpMurmur2.pas',
HlpMurmur2_64 in '..\..\HashLib\src\Hash64\HlpMurmur2_64.pas',
HlpMurmurHash3_x64_128 in '..\..\HashLib\src\Hash128\HlpMurmurHash3_x64_128.pas',
HlpMurmurHash3_x86_32 in '..\..\HashLib\src\Hash32\HlpMurmurHash3_x86_32.pas',
HlpMurmurHash3_x86_128 in '..\..\HashLib\src\Hash128\HlpMurmurHash3_x86_128.pas',
HlpSipHash128 in '..\..\HashLib\src\Hash128\HlpSipHash128.pas',
HlpNullable in '..\..\HashLib\src\Nullable\HlpNullable.pas',
HlpNullDigest in '..\..\HashLib\src\NullDigest\HlpNullDigest.pas',
HlpOneAtTime in '..\..\HashLib\src\Hash32\HlpOneAtTime.pas',
HlpPJW in '..\..\HashLib\src\Hash32\HlpPJW.pas',
HlpRadioGatun32 in '..\..\HashLib\src\Crypto\HlpRadioGatun32.pas',
HlpRadioGatun64 in '..\..\HashLib\src\Crypto\HlpRadioGatun64.pas',
HlpRIPEMD in '..\..\HashLib\src\Crypto\HlpRIPEMD.pas',
HlpRIPEMD128 in '..\..\HashLib\src\Crypto\HlpRIPEMD128.pas',
HlpRIPEMD160 in '..\..\HashLib\src\Crypto\HlpRIPEMD160.pas',
HlpRIPEMD256 in '..\..\HashLib\src\Crypto\HlpRIPEMD256.pas',
HlpRIPEMD320 in '..\..\HashLib\src\Crypto\HlpRIPEMD320.pas',
HlpRotating in '..\..\HashLib\src\Hash32\HlpRotating.pas',
HlpRS in '..\..\HashLib\src\Hash32\HlpRS.pas',
HlpSDBM in '..\..\HashLib\src\Hash32\HlpSDBM.pas',
HlpSHA0 in '..\..\HashLib\src\Crypto\HlpSHA0.pas',
HlpSHA1 in '..\..\HashLib\src\Crypto\HlpSHA1.pas',
HlpSHA2_224 in '..\..\HashLib\src\Crypto\HlpSHA2_224.pas',
HlpSHA2_256 in '..\..\HashLib\src\Crypto\HlpSHA2_256.pas',
HlpSHA2_256Base in '..\..\HashLib\src\Crypto\HlpSHA2_256Base.pas',
HlpSHA2_384 in '..\..\HashLib\src\Crypto\HlpSHA2_384.pas',
HlpSHA2_512 in '..\..\HashLib\src\Crypto\HlpSHA2_512.pas',
HlpSHA2_512_224 in '..\..\HashLib\src\Crypto\HlpSHA2_512_224.pas',
HlpSHA2_512_256 in '..\..\HashLib\src\Crypto\HlpSHA2_512_256.pas',
HlpSHA2_512Base in '..\..\HashLib\src\Crypto\HlpSHA2_512Base.pas',
HlpShiftAndXor in '..\..\HashLib\src\Hash32\HlpShiftAndXor.pas',
HlpSipHash in '..\..\HashLib\src\Hash64\HlpSipHash.pas',
HlpSuperFast in '..\..\HashLib\src\Hash32\HlpSuperFast.pas',
HlpTiger in '..\..\HashLib\src\Crypto\HlpTiger.pas',
HlpTiger2 in '..\..\HashLib\src\Crypto\HlpTiger2.pas',
HlpWhirlPool in '..\..\HashLib\src\Crypto\HlpWhirlPool.pas',
HlpArrayUtils in '..\..\HashLib\src\Utils\HlpArrayUtils.pas',
HlpBlake2SParams in '..\..\HashLib\src\Crypto\Blake2SParams\HlpBlake2SParams.pas',
HlpBlake2BParams in '..\..\HashLib\src\Crypto\Blake2BParams\HlpBlake2BParams.pas',
HlpIBlake2SParams in '..\..\HashLib\src\Interfaces\IBlake2SParams\HlpIBlake2SParams.pas',
HlpIBlake2BParams in '..\..\HashLib\src\Interfaces\IBlake2BParams\HlpIBlake2BParams.pas';

var
StringList: TStringList;
Log: String;

begin
try
Writeln('Please be patient, this might take some time' + SLineBreak);
StringList := TStringList.Create;
try
TPerformanceBenchmark.DoBenchmark(StringList);

for Log in StringList do
begin
Writeln(Log);
end;

finally
StringList.Free;
end;
Writeln(SLineBreak + 'Performance Benchmark Finished');
ReadLn;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;

end.
118 changes: 118 additions & 0 deletions HashLib.Benchmark/Delphi/PerformanceBenchmarkFMX.dpr
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
program PerformanceBenchmarkFMX;

uses
System.StartUpCopy,
FMX.Forms,
fmxMainForm in '..\src\Forms\FMX\fmxMainForm.pas' {MainForm},
uPerformanceBenchmark in '..\src\Core\uPerformanceBenchmark.pas',
HlpCRC in '..\..\HashLib\src\Checksum\HlpCRC.pas',
HlpICRC in '..\..\HashLib\src\Interfaces\HlpICRC.pas',
HlpBitConverter in '..\..\HashLib\src\Utils\HlpBitConverter.pas',
HlpGrindahl512 in '..\..\HashLib\src\Crypto\HlpGrindahl512.pas',
HlpGrindahl256 in '..\..\HashLib\src\Crypto\HlpGrindahl256.pas',
HlpHashFactory in '..\..\HashLib\src\Base\HlpHashFactory.pas',
HlpCRC32Fast in '..\..\HashLib\src\Checksum\HlpCRC32Fast.pas',
HlpCRC64 in '..\..\HashLib\src\Checksum\HlpCRC64.pas',
HlpCRC32 in '..\..\HashLib\src\Checksum\HlpCRC32.pas',
HlpBlake2B in '..\..\HashLib\src\Crypto\HlpBlake2B.pas',
HlpFNV64 in '..\..\HashLib\src\Hash64\HlpFNV64.pas',
HlpBits in '..\..\HashLib\src\Utils\HlpBits.pas',
HlpConverters in '..\..\HashLib\src\Utils\HlpConverters.pas',
HlpSHA3 in '..\..\HashLib\src\Crypto\HlpSHA3.pas',
HlpIHashInfo in '..\..\HashLib\src\Interfaces\HlpIHashInfo.pas',
HlpHashBuffer in '..\..\HashLib\src\Base\HlpHashBuffer.pas',
HlpSnefru in '..\..\HashLib\src\Crypto\HlpSnefru.pas',
HlpHash in '..\..\HashLib\src\Base\HlpHash.pas',
HlpXXHash32 in '..\..\HashLib\src\Hash32\HlpXXHash32.pas',
HlpXXHash64 in '..\..\HashLib\src\Hash64\HlpXXHash64.pas',
HlpHashCryptoNotBuildIn in '..\..\HashLib\src\Base\HlpHashCryptoNotBuildIn.pas',
HlpHMACNotBuildInAdapter in '..\..\HashLib\src\Base\HlpHMACNotBuildInAdapter.pas',
HlpPBKDF2_HMACNotBuildInAdapter in '..\..\HashLib\src\KDF\HlpPBKDF2_HMACNotBuildInAdapter.pas',
HlpPBKDF_Argon2NotBuildInAdapter in '..\..\HashLib\src\KDF\HlpPBKDF_Argon2NotBuildInAdapter.pas',
HlpArgon2TypeAndVersion in '..\..\HashLib\src\KDF\HlpArgon2TypeAndVersion.pas',
HlpPBKDF_ScryptNotBuildInAdapter in '..\..\HashLib\src\KDF\HlpPBKDF_ScryptNotBuildInAdapter.pas',
HlpPanama in '..\..\HashLib\src\Crypto\HlpPanama.pas',
HlpAdler32 in '..\..\HashLib\src\Checksum\HlpAdler32.pas',
HlpAP in '..\..\HashLib\src\Hash32\HlpAP.pas',
HlpBernstein in '..\..\HashLib\src\Hash32\HlpBernstein.pas',
HlpBernstein1 in '..\..\HashLib\src\Hash32\HlpBernstein1.pas',
HlpBKDR in '..\..\HashLib\src\Hash32\HlpBKDR.pas',
HlpBlake2S in '..\..\HashLib\src\Crypto\HlpBlake2S.pas',
HlpCRC16 in '..\..\HashLib\src\Checksum\HlpCRC16.pas',
HlpDEK in '..\..\HashLib\src\Hash32\HlpDEK.pas',
HlpDJB in '..\..\HashLib\src\Hash32\HlpDJB.pas',
HlpELF in '..\..\HashLib\src\Hash32\HlpELF.pas',
HlpFNV in '..\..\HashLib\src\Hash32\HlpFNV.pas',
HlpFNV1a in '..\..\HashLib\src\Hash32\HlpFNV1a.pas',
HlpFNV1a64 in '..\..\HashLib\src\Hash64\HlpFNV1a64.pas',
HlpGost in '..\..\HashLib\src\Crypto\HlpGost.pas',
HlpGOST3411_2012 in '..\..\HashLib\src\Crypto\HlpGOST3411_2012.pas',
HlpHAS160 in '..\..\HashLib\src\Crypto\HlpHAS160.pas',
HlpHashLibTypes in '..\..\HashLib\src\Utils\HlpHashLibTypes.pas',
HlpHashResult in '..\..\HashLib\src\Base\HlpHashResult.pas',
HlpHashRounds in '..\..\HashLib\src\Base\HlpHashRounds.pas',
HlpHashSize in '..\..\HashLib\src\Base\HlpHashSize.pas',
HlpHaval in '..\..\HashLib\src\Crypto\HlpHaval.pas',
HlpBlake2BP in '..\..\HashLib\src\Crypto\HlpBlake2BP.pas',
HlpBlake2SP in '..\..\HashLib\src\Crypto\HlpBlake2SP.pas',
HlpBlake3 in '..\..\HashLib\src\Crypto\HlpBlake3.pas',
HlpIHash in '..\..\HashLib\src\Interfaces\HlpIHash.pas',
HlpIHashResult in '..\..\HashLib\src\Interfaces\HlpIHashResult.pas',
HlpIKDF in '..\..\HashLib\src\Interfaces\HlpIKDF.pas',
HlpJenkins3 in '..\..\HashLib\src\Hash32\HlpJenkins3.pas',
HlpJS in '..\..\HashLib\src\Hash32\HlpJS.pas',
HlpKDF in '..\..\HashLib\src\Base\HlpKDF.pas',
HlpMD2 in '..\..\HashLib\src\Crypto\HlpMD2.pas',
HlpMD4 in '..\..\HashLib\src\Crypto\HlpMD4.pas',
HlpMD5 in '..\..\HashLib\src\Crypto\HlpMD5.pas',
HlpMDBase in '..\..\HashLib\src\Crypto\HlpMDBase.pas',
HlpMultipleTransformNonBlock in '..\..\HashLib\src\Base\HlpMultipleTransformNonBlock.pas',
HlpMurmur2 in '..\..\HashLib\src\Hash32\HlpMurmur2.pas',
HlpMurmur2_64 in '..\..\HashLib\src\Hash64\HlpMurmur2_64.pas',
HlpMurmurHash3_x64_128 in '..\..\HashLib\src\Hash128\HlpMurmurHash3_x64_128.pas',
HlpMurmurHash3_x86_32 in '..\..\HashLib\src\Hash32\HlpMurmurHash3_x86_32.pas',
HlpMurmurHash3_x86_128 in '..\..\HashLib\src\Hash128\HlpMurmurHash3_x86_128.pas',
HlpSipHash128 in '..\..\HashLib\src\Hash128\HlpSipHash128.pas',
HlpNullable in '..\..\HashLib\src\Nullable\HlpNullable.pas',
HlpNullDigest in '..\..\HashLib\src\NullDigest\HlpNullDigest.pas',
HlpOneAtTime in '..\..\HashLib\src\Hash32\HlpOneAtTime.pas',
HlpPJW in '..\..\HashLib\src\Hash32\HlpPJW.pas',
HlpRadioGatun32 in '..\..\HashLib\src\Crypto\HlpRadioGatun32.pas',
HlpRadioGatun64 in '..\..\HashLib\src\Crypto\HlpRadioGatun64.pas',
HlpRIPEMD in '..\..\HashLib\src\Crypto\HlpRIPEMD.pas',
HlpRIPEMD128 in '..\..\HashLib\src\Crypto\HlpRIPEMD128.pas',
HlpRIPEMD160 in '..\..\HashLib\src\Crypto\HlpRIPEMD160.pas',
HlpRIPEMD256 in '..\..\HashLib\src\Crypto\HlpRIPEMD256.pas',
HlpRIPEMD320 in '..\..\HashLib\src\Crypto\HlpRIPEMD320.pas',
HlpRotating in '..\..\HashLib\src\Hash32\HlpRotating.pas',
HlpRS in '..\..\HashLib\src\Hash32\HlpRS.pas',
HlpSDBM in '..\..\HashLib\src\Hash32\HlpSDBM.pas',
HlpSHA0 in '..\..\HashLib\src\Crypto\HlpSHA0.pas',
HlpSHA1 in '..\..\HashLib\src\Crypto\HlpSHA1.pas',
HlpSHA2_224 in '..\..\HashLib\src\Crypto\HlpSHA2_224.pas',
HlpSHA2_256 in '..\..\HashLib\src\Crypto\HlpSHA2_256.pas',
HlpSHA2_256Base in '..\..\HashLib\src\Crypto\HlpSHA2_256Base.pas',
HlpSHA2_384 in '..\..\HashLib\src\Crypto\HlpSHA2_384.pas',
HlpSHA2_512 in '..\..\HashLib\src\Crypto\HlpSHA2_512.pas',
HlpSHA2_512_224 in '..\..\HashLib\src\Crypto\HlpSHA2_512_224.pas',
HlpSHA2_512_256 in '..\..\HashLib\src\Crypto\HlpSHA2_512_256.pas',
HlpSHA2_512Base in '..\..\HashLib\src\Crypto\HlpSHA2_512Base.pas',
HlpShiftAndXor in '..\..\HashLib\src\Hash32\HlpShiftAndXor.pas',
HlpSipHash in '..\..\HashLib\src\Hash64\HlpSipHash.pas',
HlpSuperFast in '..\..\HashLib\src\Hash32\HlpSuperFast.pas',
HlpTiger in '..\..\HashLib\src\Crypto\HlpTiger.pas',
HlpTiger2 in '..\..\HashLib\src\Crypto\HlpTiger2.pas',
HlpWhirlPool in '..\..\HashLib\src\Crypto\HlpWhirlPool.pas',
HlpArrayUtils in '..\..\HashLib\src\Utils\HlpArrayUtils.pas',
HlpBlake2SParams in '..\..\HashLib\src\Crypto\Blake2SParams\HlpBlake2SParams.pas',
HlpBlake2BParams in '..\..\HashLib\src\Crypto\Blake2BParams\HlpBlake2BParams.pas',
HlpIBlake2SParams in '..\..\HashLib\src\Interfaces\IBlake2SParams\HlpIBlake2SParams.pas',
HlpIBlake2BParams in '..\..\HashLib\src\Interfaces\IBlake2BParams\HlpIBlake2BParams.pas';

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\..\src\Core\uPerformanceBenchmark.pas"/>
<Filename Value="..\src\Core\uPerformanceBenchmark.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
</Units>
Expand All @@ -86,7 +86,7 @@
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<OtherUnitFiles Value="..\..\src\Core"/>
<OtherUnitFiles Value="..\src\Core"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
</CompilerOptions>
Expand Down
Loading