checksum v2 benchmarks TEST File: 10GB Test Hardware: Ryzen 5600X, 64GB RAM. I didn't make any effort to kill other apps or anything, I'm more interested in relative times here. Algorithm checksum v2.0 old checksum hash.dll Windows cryptutil Hash MD4: 12.43s - 15.16s 0044f01fdba328c957c0ed00489e770e MD5: 18.57s 15.28s 21.35s 2dd26c4d4799ebd29fa31e48d49e8e53 SHA-1: 14.74s 12.75s 17.59s a0b6e2ca4e28360a929943e8eb966f703a69dc44 SHA-256: 6.71s - 9.23s 732377e7f4a2abdc13ddfa1eb4c9c497fd2a2b294674d056cf51581b47dd586d SHA-384: 18.1s - 20.19s 440e039ed1fe662a936af419efa9210b1c3d43ae749da5b91f4e77d865b7910ab7949150ae4c52b545e02c41a9a19daf SHA-512: 18.2s - 19.93s 0a9ed4396868700784918a83a595845d70e582eb0e625c48ace24f4ee94e705247e210339c5f5a55e597f00d2c3217b0c0797e1bfc617161e00de96eaee2d068 Blake2s: - 17.81s 10421fca74fb8037cd060b2e77086e8d909b319747698d3a25cfb8a9c84752b1 Each test performed three times, mean (simple average) time recorded above. All times were *very* similar, with no outliers, so should be accurate. It is noteworthy that the 2nd fastest algorithm on modern hardware, is MD4: Algorithm Time Speed SHA-256: 6.71s 1526.08 MB/s MD4: 12.43s 823.81 MB/s SHA-1: 14.74s 694.71 MB/s SHA-384: 18.1s 565.75 MB/s SHA-512: 18.2s 562.64 MB/s MD5: 18.57s 551.43 MB/s Under best conditions, @10GB SHA256 can take under 5.5 seconds (1862 MB/s). Under those same conditions, CRC32 will take around 21 seconds (490 MB/s). --- checksum v1.3.6 benchmarks http://corz.org/windows/software/checksum/ These are my own, personal benchmarks which I produce often when testing DLL code and compile-time switches. Feel free to use my protocol and compare your own results, even mail them to me! My protocol: * Quiet the system. i.e. close web browsers, music players and other non-essential apps. * Hash the test file once, to load it into RAM. This way, hard drive speeds/interface/fragmentation/etc., will not skew the results - we are purely interested in /computational/ speed. The test file is exactly 1GB in size. You need to have at least 1GB of free RAM to do hold the file data! And a 1GB file. * Hash the file a further three times, recording the time taken, to at least 2 decimal places. If all goes to plan, the three times will be *very* close. You can repeat this step more than once if you feel the numbers are being affected by some system event. Repeat/wait until the results /become/ very close. This indicates the system is otherwise quiet. * Repeat for all algorithms, using both x86 and x64 checksum binaries. The differences are "interesting". * Calculate the average (mean) time and use this figure to calculate the average hashing speed. Record that. The Results: Best time so far: MD5 at 604.73 MB/s for Intel i7 3770K Intel Celeron G530.. x86 x64 MD5: Average time => 3.65471996003509 Average time => 3.54999705889624 Average speed => 280.14 MB/s Average speed => 288.4 MB/s SHA1: Average time => 5.29338305645754 Average time => 5.44766597131586 Average speed => 193.42 MB/s Average speed => 187.94 MB/s BLAKE2: Average time => 7.08508659124095 Average time => 4.96118145833946 Average speed => 144.51 MB/s Average speed => 206.37 MB/s Intel Core i7 3770K .. x86: x64: MD5: Average time => 1.71526789173288 Average time => 1.69303022115984 Average speed => 596.89 MB/s Average speed => 604.73 MB/s SHA1: Average time => 2.30020931031763 Average time => 2.33901472160913 Average speed => 445.1 MB/s Average speed => 437.72 MB/s BLAKE2: Average time => 3.07785050245177 Average time => 2.26448678252172 Average speed => 332.65 MB/s Average speed => 452.13 MB/s