updated to version 4.1
- changelog from 4.0 to 4.1
* add Blake3 and Blake3XOF support
* performance improvements especially XOF Related.
** Now updated in OPM
Thanks for your work on this encryption library, Xor-el.
Question for you: Based on the following URL, I had expected Blake3 to perform faster than it does.
https://www.infoq.com/news/2020/01/blake3-fast-crypto-hash/Here's the result I receive from compiling the performance benchmark project:
Adler32 Throughput: 1008.67 MB/s with Blocks of 64 KB
CRC-32_PKZIP_Generic Throughput: 272.60 MB/s with Blocks of 64 KB
CRC32_PKZIP_Fast Throughput: 1362.69 MB/s with Blocks of 64 KB
MurmurHash3_x86_32 Throughput: 1059.08 MB/s with Blocks of 64 KB
XXHash32 Throughput: 2872.15 MB/s with Blocks of 64 KB
SipHash2_4 Throughput: 490.02 MB/s with Blocks of 64 KB
XXHash64 Throughput: 5555.96 MB/s with Blocks of 64 KB
MurmurHash3_x86_128 Throughput: 1161.00 MB/s with Blocks of 64 KB
MurmurHash3_x64_128 Throughput: 2166.02 MB/s with Blocks of 64 KB
MD5 Throughput: 406.56 MB/s with Blocks of 64 KB
SHA1 Throughput: 203.96 MB/s with Blocks of 64 KB
SHA2_256 Throughput: 105.44 MB/s with Blocks of 64 KB
SHA2_512 Throughput: 166.15 MB/s with Blocks of 64 KB
SHA3_256 Throughput: 114.94 MB/s with Blocks of 64 KB
SHA3_512 Throughput: 62.42 MB/s with Blocks of 64 KB
Blake2B_256 Throughput: 253.35 MB/s with Blocks of 64 KB
Blake2B_512 Throughput: 250.90 MB/s with Blocks of 64 KB
Blake2S_128 Throughput: 135.23 MB/s with Blocks of 64 KB
Blake2S_256 Throughput: 134.46 MB/s with Blocks of 64 KB
Blake2BP_512 Throughput: 229.02 MB/s with Blocks of 64 KB
Blake2SP_256 Throughput: 122.54 MB/s with Blocks of 64 KB
Blake3_256 Throughput: 171.33 MB/s with Blocks of 64 KB
The results are for the 64-bit version running on an older i5 system.
On my Ryzen 2700X, I get the following (higher scores, but relatively similar ratios):
Adler32 Throughput: 1640.79 MB/s with Blocks of 64 KB
CRC-32_PKZIP_Generic Throughput: 473.77 MB/s with Blocks of 64 KB
CRC32_PKZIP_Fast Throughput: 2661.13 MB/s with Blocks of 64 KB
MurmurHash3_x86_32 Throughput: 2870.29 MB/s with Blocks of 64 KB
XXHash32 Throughput: 6589.35 MB/s with Blocks of 64 KB
SipHash2_4 Throughput: 875.60 MB/s with Blocks of 64 KB
XXHash64 Throughput: 11974.94 MB/s with Blocks of 64 KB
MurmurHash3_x86_128 Throughput: 3170.98 MB/s with Blocks of 64 KB
MurmurHash3_x64_128 Throughput: 5952.44 MB/s with Blocks of 64 KB
MD5 Throughput: 645.21 MB/s with Blocks of 64 KB
SHA1 Throughput: 362.31 MB/s with Blocks of 64 KB
SHA2_256 Throughput: 206.44 MB/s with Blocks of 64 KB
SHA2_512 Throughput: 331.27 MB/s with Blocks of 64 KB
SHA3_256 Throughput: 216.15 MB/s with Blocks of 64 KB
SHA3_512 Throughput: 117.08 MB/s with Blocks of 64 KB
Blake2B_256 Throughput: 622.10 MB/s with Blocks of 64 KB
Blake2B_512 Throughput: 609.48 MB/s with Blocks of 64 KB
Blake2S_128 Throughput: 262.54 MB/s with Blocks of 64 KB
Blake2S_256 Throughput: 264.10 MB/s with Blocks of 64 KB
Blake2BP_512 Throughput: 542.54 MB/s with Blocks of 64 KB
Blake2SP_256 Throughput: 237.92 MB/s with Blocks of 64 KB
Blake3_256 Throughput: 347.90 MB/s with Blocks of 64 KB
I skipped implementing Blake2 altogether, since it seems to be a little bit more involved to use than the other hash functions, and I expected Blake3 to be faster anyway. (It would have helped if I had run the benchmark first.)
Any thoughts on the above? Is there something that I am overlooking?
I compiled the benchmark as is.
Regards,