Skip to content

conradludgate/checksum-benchmarks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

checksum benchmarks

Benchmark of various checksum algorithms (specifically, rust implementations).

  • 32bit: adler32, crc32
  • 128bit: md5
  • 160bit: sha1
  • 256bit: sha2_256, sha3_256, blake2s, blake3
  • 384bit: sha2_384, sha3_384
  • 512bit: blake2b, sha2_512, sha3_512

Run with

RUSTFLAGS="-C target-cpu=native" DIVAN_SAMPLE_COUNT=10000 cargo +nightly bench

I've tried to use the most efficient checksum/hash function implementation in each case.

  • sha1/sha2_* will try to use hardware acceleration.
  • blake3_mt will use rayon for parallelism

Benchmark setup

The checksum algorithms are benchmarked on pages of size 4KiB, 16KiB, 64KiB and 1MiB.

[!INFO] The larger the page size and the smaller the checksum output, the more greater the chance of collisions. I would advice against using a 32bit checksum on >16KiB inputs.

[!WARN] Some of these checksums are not cryptographically secure.

Summary

  • If you are checksumming large pages and/or need cryptographic security, I would highly recommend blake3.
  • If you are checksumming small pages and don't need cryptographic security, crc32 or adler32 work well.

This benchmark makes no claims over checksum integrety. I would advise you do your own research here.

This benchmark makes no claims over cryptographic security. I would advise you do your own research here. However, my opinion on the research is that blake3, sha2, and sha3 are all cryptographically secure still. Blake3 is the most modern and it seems to be the most secure, but more analysis is required.

Results

Apple Macbook Pro M2 Max (aarch64-apple-darwin)

crc32     - 8.70 GB/s
blake3_mt - 7.87 GB/s
adler     - 5.76 GB/s
sha2_256  - 2.38 GB/s
sha1      - 2.35 GB/s
blake3    - 2.01 GB/s
sha2_384  - 1.58 GB/s
sha2_512  - 1.58 GB/s
blake2b   - 1.14 GB/s
md5       -  653 MB/s
blake2s   -  684 MB/s
sha3_256  -  625 MB/s
sha3_384  -  479 MB/s
sha3_512  -  334 MB/s
Expand full test info
Timer precision: 41 ns
checksums            fastest       │ slowest       │ median        │ mean          │ samples │ iters
├─ crypto                          │               │               │               │         │
│  ├─ blake                        │               │               │               │         │
│  │  ├─ blake2b                   │               │               │               │         │
│  │  │  ├─ 4096     3.749 µs      │ 41.91 µs      │ 5.207 µs      │ 5.83 µs       │ 10000   │ 10000
│  │  │  │           1.092 GB/s    │ 97.71 MB/s    │ 786.5 MB/s    │ 702.5 MB/s    │         │
│  │  │  ├─ 16384    14.12 µs      │ 50.08 µs      │ 14.24 µs      │ 14.97 µs      │ 10000   │ 10000
│  │  │  │           1.159 GB/s    │ 327.1 MB/s    │ 1.149 GB/s    │ 1.093 GB/s    │         │
│  │  │  ├─ 65536    56.58 µs      │ 179.7 µs      │ 56.83 µs      │ 57.64 µs      │ 10000   │ 10000
│  │  │  │           1.158 GB/s    │ 364.5 MB/s    │ 1.153 GB/s    │ 1.136 GB/s    │         │
│  │  │  ╰─ 1048576  907.7 µs      │ 2.162 ms      │ 912 µs        │ 918.2 µs      │ 10000   │ 10000
│  │  │              1.155 GB/s    │ 484.8 MB/s    │ 1.149 GB/s    │ 1.141 GB/s    │         │
│  │  ├─ blake2s                   │               │               │               │         │
│  │  │  ├─ 4096     5.874 µs      │ 21.04 µs      │ 5.999 µs      │ 6.17 µs       │ 10000   │ 10000
│  │  │  │           697.2 MB/s    │ 194.6 MB/s    │ 682.7 MB/s    │ 663.7 MB/s    │         │
│  │  │  ├─ 16384    23.66 µs      │ 44.83 µs      │ 23.83 µs      │ 24.15 µs      │ 10000   │ 10000
│  │  │  │           692.3 MB/s    │ 365.4 MB/s    │ 687.4 MB/s    │ 678.3 MB/s    │         │
│  │  │  ├─ 65536    95.08 µs      │ 143.6 µs      │ 95.33 µs      │ 96.65 µs      │ 10000   │ 10000
│  │  │  │           689.2 MB/s    │ 456.1 MB/s    │ 687.4 MB/s    │ 678 MB/s      │         │
│  │  │  ╰─ 1048576  1.523 ms      │ 1.833 ms      │ 1.527 ms      │ 1.532 ms      │ 10000   │ 10000
│  │  │              688.4 MB/s    │ 571.7 MB/s    │ 686.3 MB/s    │ 684.1 MB/s    │         │
│  │  ├─ blake3                    │               │               │               │         │
│  │  │  ├─ 4096     2.04 µs       │ 28.29 µs      │ 2.124 µs      │ 2.23 µs       │ 10000   │ 10000
│  │  │  │           2.007 GB/s    │ 144.7 MB/s    │ 1.927 GB/s    │ 1.836 GB/s    │         │
│  │  │  ├─ 16384    8.082 µs      │ 26.7 µs       │ 8.207 µs      │ 8.379 µs      │ 10000   │ 10000
│  │  │  │           2.027 GB/s    │ 613.4 MB/s    │ 1.996 GB/s    │ 1.955 GB/s    │         │
│  │  │  ├─ 65536    32.33 µs      │ 56.04 µs      │ 32.45 µs      │ 32.78 µs      │ 10000   │ 10000
│  │  │  │           2.026 GB/s    │ 1.169 GB/s    │ 2.019 GB/s    │ 1.999 GB/s    │         │
│  │  │  ╰─ 1048576  518.2 µs      │ 730.6 µs      │ 518.7 µs      │ 522.3 µs      │ 10000   │ 10000
│  │  │              2.023 GB/s    │ 1.435 GB/s    │ 2.021 GB/s    │ 2.007 GB/s    │         │
│  │  ╰─ blake3_mt                 │               │               │               │         │
│  │     ├─ 4096     2.082 µs      │ 8.562 µs      │ 2.124 µs      │ 2.172 µs      │ 10000   │ 20000
│  │     │           1.966 GB/s    │ 478.3 MB/s    │ 1.927 GB/s    │ 1.885 GB/s    │         │
│  │     ├─ 16384    8.499 µs      │ 229.5 µs      │ 22.83 µs      │ 28.98 µs      │ 10000   │ 10000
│  │     │           1.927 GB/s    │ 71.37 MB/s    │ 717.5 MB/s    │ 565.1 MB/s    │         │
│  │     ├─ 65536    15.04 µs      │ 285.2 µs      │ 38.33 µs      │ 42.38 µs      │ 10000   │ 10000
│  │     │           4.357 GB/s    │ 229.7 MB/s    │ 1.709 GB/s    │ 1.546 GB/s    │         │
│  │     ╰─ 1048576  74.16 µs      │ 615.2 µs      │ 117.4 µs      │ 133.1 µs      │ 10000   │ 10000
│  │                 14.13 GB/s    │ 1.704 GB/s    │ 8.93 GB/s     │ 7.872 GB/s    │         │
│  ├─ md                           │               │               │               │         │
│  │  ╰─ md5                       │               │               │               │         │
│  │     ├─ 4096     6.124 µs      │ 19.87 µs      │ 6.291 µs      │ 6.437 µs      │ 10000   │ 10000
│  │     │           668.7 MB/s    │ 206 MB/s      │ 651 MB/s      │ 636.2 MB/s    │         │
│  │     ├─ 16384    24.45 µs      │ 75.04 µs      │ 25.08 µs      │ 25.24 µs      │ 10000   │ 10000
│  │     │           669.8 MB/s    │ 218.3 MB/s    │ 653.1 MB/s    │ 649 MB/s      │         │
│  │     ├─ 65536    97.7 µs       │ 166.7 µs      │ 100.2 µs      │ 100.7 µs      │ 10000   │ 10000
│  │     │           670.7 MB/s    │ 392.9 MB/s    │ 653.9 MB/s    │ 650.7 MB/s    │         │
│  │     ╰─ 1048576  1.562 ms      │ 1.849 ms      │ 1.604 ms      │ 1.604 ms      │ 10000   │ 10000
│  │                 671.2 MB/s    │ 567 MB/s      │ 653.3 MB/s    │ 653.4 MB/s    │         │
│  ╰─ sha                          │               │               │               │         │
│     ├─ sha1                      │               │               │               │         │
│     │  ├─ 4096     1.718 µs      │ 5.489 µs      │ 1.749 µs      │ 1.782 µs      │ 10000   │ 40000
│     │  │           2.383 GB/s    │ 746.1 MB/s    │ 2.341 GB/s    │ 2.297 GB/s    │         │
│     │  ├─ 16384    6.832 µs      │ 38.79 µs      │ 6.916 µs      │ 7.1 µs        │ 10000   │ 10000
│     │  │           2.397 GB/s    │ 422.3 MB/s    │ 2.368 GB/s    │ 2.307 GB/s    │         │
│     │  ├─ 65536    27.41 µs      │ 49.04 µs      │ 27.54 µs      │ 27.87 µs      │ 10000   │ 10000
│     │  │           2.39 GB/s     │ 1.336 GB/s    │ 2.379 GB/s    │ 2.351 GB/s    │         │
│     │  ╰─ 1048576  440 µs        │ 566.9 µs      │ 440.3 µs      │ 444.3 µs      │ 10000   │ 10000
│     │              2.382 GB/s    │ 1.849 GB/s    │ 2.381 GB/s    │ 2.359 GB/s    │         │
│     ├─ sha2_256                  │               │               │               │         │
│     │  ├─ 4096     1.697 µs      │ 17.26 µs      │ 1.728 µs      │ 1.769 µs      │ 10000   │ 40000
│     │  │           2.412 GB/s    │ 237.3 MB/s    │ 2.369 GB/s    │ 2.315 GB/s    │         │
│     │  ├─ 16384    6.749 µs      │ 27.33 µs      │ 6.874 µs      │ 7.021 µs      │ 10000   │ 10000
│     │  │           2.427 GB/s    │ 599.4 MB/s    │ 2.383 GB/s    │ 2.333 GB/s    │         │
│     │  ├─ 65536    27.16 µs      │ 48.99 µs      │ 27.37 µs      │ 27.71 µs      │ 10000   │ 10000
│     │  │           2.412 GB/s    │ 1.337 GB/s    │ 2.394 GB/s    │ 2.364 GB/s    │         │
│     │  ╰─ 1048576  434.8 µs      │ 541.7 µs      │ 437.3 µs      │ 439.8 µs      │ 10000   │ 10000
│     │              2.411 GB/s    │ 1.935 GB/s    │ 2.397 GB/s    │ 2.383 GB/s    │         │
│     ├─ sha2_384                  │               │               │               │         │
│     │  ├─ 4096     2.582 µs      │ 21.91 µs      │ 2.666 µs      │ 2.755 µs      │ 10000   │ 10000
│     │  │           1.586 GB/s    │ 186.8 MB/s    │ 1.536 GB/s    │ 1.486 GB/s    │         │
│     │  ├─ 16384    10.29 µs      │ 26.87 µs      │ 10.41 µs      │ 10.61 µs      │ 10000   │ 10000
│     │  │           1.592 GB/s    │ 609.6 MB/s    │ 1.573 GB/s    │ 1.544 GB/s    │         │
│     │  ├─ 65536    41.2 µs       │ 145.8 µs      │ 41.29 µs      │ 41.89 µs      │ 10000   │ 10000
│     │  │           1.59 GB/s     │ 449.3 MB/s    │ 1.587 GB/s    │ 1.564 GB/s    │         │
│     │  ╰─ 1048576  659.3 µs      │ 816.7 µs      │ 662.4 µs      │ 663.9 µs      │ 10000   │ 10000
│     │              1.59 GB/s     │ 1.283 GB/s    │ 1.582 GB/s    │ 1.579 GB/s    │         │
│     ├─ sha2_512                  │               │               │               │         │
│     │  ├─ 4096     2.603 µs      │ 9.583 µs      │ 2.666 µs      │ 2.724 µs      │ 10000   │ 20000
│     │  │           1.573 GB/s    │ 427.4 MB/s    │ 1.536 GB/s    │ 1.503 GB/s    │         │
│     │  ├─ 16384    10.29 µs      │ 31.49 µs      │ 10.41 µs      │ 10.57 µs      │ 10000   │ 10000
│     │  │           1.592 GB/s    │ 520.1 MB/s    │ 1.573 GB/s    │ 1.549 GB/s    │         │
│     │  ├─ 65536    41.2 µs       │ 85.91 µs      │ 41.29 µs      │ 41.76 µs      │ 10000   │ 10000
│     │  │           1.59 GB/s     │ 762.7 MB/s    │ 1.587 GB/s    │ 1.569 GB/s    │         │
│     │  ╰─ 1048576  659.3 µs      │ 888.7 µs      │ 662.7 µs      │ 664.7 µs      │ 10000   │ 10000
│     │              1.59 GB/s     │ 1.179 GB/s    │ 1.582 GB/s    │ 1.577 GB/s    │         │
│     ├─ sha3_256                  │               │               │               │         │
│     │  ├─ 4096     6.54 µs       │ 22.24 µs      │ 6.707 µs      │ 6.812 µs      │ 10000   │ 10000
│     │  │           626.2 MB/s    │ 184 MB/s      │ 610.6 MB/s    │ 601.2 MB/s    │         │
│     │  ├─ 16384    25.58 µs      │ 48.2 µs       │ 26.04 µs      │ 26.33 µs      │ 10000   │ 10000
│     │  │           640.4 MB/s    │ 339.8 MB/s    │ 629.1 MB/s    │ 622.1 MB/s    │         │
│     │  ├─ 65536    102.7 µs      │ 151.3 µs      │ 103.5 µs      │ 104.3 µs      │ 10000   │ 10000
│     │  │           638 MB/s      │ 432.9 MB/s    │ 632.6 MB/s    │ 628.1 MB/s    │         │
│     │  ╰─ 1048576  1.657 ms      │ 2.355 ms      │ 1.67 ms       │ 1.677 ms      │ 10000   │ 10000
│     │              632.6 MB/s    │ 445.1 MB/s    │ 627.7 MB/s    │ 625.1 MB/s    │         │
│     ├─ sha3_384                  │               │               │               │         │
│     │  ├─ 4096     8.457 µs      │ 28.2 µs       │ 8.624 µs      │ 8.796 µs      │ 10000   │ 10000
│     │  │           484.2 MB/s    │ 145.2 MB/s    │ 474.9 MB/s    │ 465.6 MB/s    │         │
│     │  ├─ 16384    33.49 µs      │ 63.91 µs      │ 33.91 µs      │ 34.26 µs      │ 10000   │ 10000
│     │  │           489 MB/s      │ 256.3 MB/s    │ 483 MB/s      │ 478.1 MB/s    │         │
│     │  ├─ 65536    134.4 µs      │ 185.9 µs      │ 135.3 µs      │ 136.2 µs      │ 10000   │ 10000
│     │  │           487.4 MB/s    │ 352.3 MB/s    │ 484.1 MB/s    │ 481 MB/s      │         │
│     │  ╰─ 1048576  2.165 ms      │ 2.542 ms      │ 2.177 ms      │ 2.184 ms      │ 10000   │ 10000
│     │              484.2 MB/s    │ 412.3 MB/s    │ 481.5 MB/s    │ 479.9 MB/s    │         │
│     ╰─ sha3_512                  │               │               │               │         │
│        ├─ 4096     11.99 µs      │ 29.7 µs       │ 12.2 µs       │ 12.46 µs      │ 10000   │ 10000
│        │           341.3 MB/s    │ 137.8 MB/s    │ 335.5 MB/s    │ 328.6 MB/s    │         │
│        ├─ 16384    48.12 µs      │ 72.95 µs      │ 48.7 µs       │ 49.28 µs      │ 10000   │ 10000
│        │           340.4 MB/s    │ 224.5 MB/s    │ 336.3 MB/s    │ 332.4 MB/s    │         │
│        ├─ 65536    193.6 µs      │ 266.1 µs      │ 194.4 µs      │ 195.8 µs      │ 10000   │ 10000
│        │           338.3 MB/s    │ 246.2 MB/s    │ 336.9 MB/s    │ 334.6 MB/s    │         │
│        ╰─ 1048576  3.11 ms       │ 3.571 ms      │ 3.126 ms      │ 3.134 ms      │ 10000   │ 10000
│                    337.1 MB/s    │ 293.5 MB/s    │ 335.3 MB/s    │ 334.5 MB/s    │         │
╰─ non_crypto                      │               │               │               │         │
   ├─ adler                        │               │               │               │         │
   │  ├─ 4096        624.5 ns      │ 2.655 µs      │ 645.4 ns      │ 665.1 ns      │ 10000   │ 80000
   │  │              6.557 GB/s    │ 1.542 GB/s    │ 6.345 GB/s    │ 6.157 GB/s    │         │
   │  ├─ 16384       2.52 µs       │ 12.08 µs      │ 2.562 µs      │ 2.632 µs      │ 10000   │ 20000
   │  │              6.5 GB/s      │ 1.356 GB/s    │ 6.394 GB/s    │ 6.222 GB/s    │         │
   │  ├─ 65536       10.79 µs      │ 35.66 µs      │ 11.24 µs      │ 11.48 µs      │ 10000   │ 10000
   │  │              6.073 GB/s    │ 1.837 GB/s    │ 5.825 GB/s    │ 5.705 GB/s    │         │
   │  ╰─ 1048576     171.4 µs      │ 263.5 µs      │ 183.6 µs      │ 181.9 µs      │ 10000   │ 10000
   │                 6.117 GB/s    │ 3.978 GB/s    │ 5.709 GB/s    │ 5.762 GB/s    │         │
   ╰─ crc                          │               │               │               │         │
      ├─ 4096        442.3 ns      │ 3.874 µs      │ 457.9 ns      │ 473.8 ns      │ 10000   │ 80000
      │              9.259 GB/s    │ 1.057 GB/s    │ 8.944 GB/s    │ 8.643 GB/s    │         │
      ├─ 16384       1.812 µs      │ 12.1 µs       │ 1.874 µs      │ 1.96 µs       │ 10000   │ 20000
      │              9.041 GB/s    │ 1.353 GB/s    │ 8.74 GB/s     │ 8.357 GB/s    │         │
      ├─ 65536       7.374 µs      │ 34.37 µs      │ 7.499 µs      │ 7.699 µs      │ 10000   │ 10000
      │              8.886 GB/s    │ 1.906 GB/s    │ 8.738 GB/s    │ 8.511 GB/s    │         │
      ╰─ 1048576     119.5 µs      │ 156.7 µs      │ 119.7 µs      │ 120.4 µs      │ 10000   │ 10000
                     8.768 GB/s    │ 6.687 GB/s    │ 8.759 GB/s    │ 8.702 GB/s    │         │

AMD Ryzen 7 5700G (x86_64-pc-windows-msvc)

Note

This is running without many hardware accelerations enabled, as these were not compiling on windows

blake3_mt - 27.2 GB/s
crc32     - 15.5 GB/s
adler     - 7.90 GB/s
blake3    - 5.54 GB/s
sha1      - 2.31 GB/s
sha2_256  - 2.16 GB/s
blake2b   - 1.40 GB/s
blake2s   -  843 MB/s
sha2_384  -  742 MB/s
sha2_512  -  711 MB/s
md5       -  612 MB/s
sha3_256  -  475 MB/s
sha3_384  -  360 MB/s
sha3_512  -  249 MB/s
Expand full test info
Timer precision: 100 ns
checksums            fastest       │ slowest       │ median        │ mean          │ samples │ iters
├─ crypto                          │               │               │               │         │
│  ├─ blake                        │               │               │               │         │
│  │  ├─ blake2b                   │               │               │               │         │
│  │  │  ├─ 4096     2.849 µs      │ 2.899 µs      │ 2.874 µs      │ 2.875 µs      │ 100     │ 400
│  │  │  │           1.437 GB/s    │ 1.412 GB/s    │ 1.424 GB/s    │ 1.424 GB/s    │         │
│  │  │  ├─ 16384    11.39 µs      │ 16.79 µs      │ 11.49 µs      │ 11.52 µs      │ 100     │ 100
│  │  │  │           1.437 GB/s    │ 975.2 MB/s    │ 1.424 GB/s    │ 1.421 GB/s    │         │
│  │  │  ├─ 65536    45.79 µs      │ 69.49 µs      │ 45.79 µs      │ 46.23 µs      │ 100     │ 100
│  │  │  │           1.43 GB/s     │ 942.9 MB/s    │ 1.43 GB/s     │ 1.417 GB/s    │         │
│  │  │  ╰─ 1048576  735.5 µs      │ 1.05 ms       │ 743.6 µs      │ 747.7 µs      │ 100     │ 100
│  │  │              1.425 GB/s    │ 997.6 MB/s    │ 1.409 GB/s    │ 1.402 GB/s    │         │
│  │  ├─ blake2s                   │               │               │               │         │
│  │  │  ├─ 4096     4.849 µs      │ 36.87 µs      │ 4.924 µs      │ 5.686 µs      │ 100     │ 400
│  │  │  │           844.5 MB/s    │ 111 MB/s      │ 831.7 MB/s    │ 720.3 MB/s    │         │
│  │  │  ├─ 16384    19.09 µs      │ 106.8 µs      │ 19.19 µs      │ 20.1 µs       │ 100     │ 100
│  │  │  │           857.8 MB/s    │ 153.2 MB/s    │ 853.3 MB/s    │ 814.8 MB/s    │         │
│  │  │  ├─ 65536    76.39 µs      │ 162.8 µs      │ 76.89 µs      │ 78.82 µs      │ 100     │ 100
│  │  │  │           857.8 MB/s    │ 402.3 MB/s    │ 852.2 MB/s    │ 831.4 MB/s    │         │
│  │  │  ╰─ 1048576  1.225 ms      │ 1.401 ms      │ 1.237 ms      │ 1.242 ms      │ 100     │ 100
│  │  │              855.5 MB/s    │ 748 MB/s      │ 847.1 MB/s    │ 843.9 MB/s    │         │
│  │  ├─ blake3                    │               │               │               │         │
│  │  │  ├─ 4096     1.299 µs      │ 17.79 µs      │ 1.399 µs      │ 1.565 µs      │ 100     │ 100
│  │  │  │           3.151 GB/s    │ 230.1 MB/s    │ 2.926 GB/s    │ 2.615 GB/s    │         │
│  │  │  ├─ 16384    2.874 µs      │ 7.324 µs      │ 2.899 µs      │ 3.245 µs      │ 100     │ 400
│  │  │  │           5.699 GB/s    │ 2.236 GB/s    │ 5.65 GB/s     │ 5.048 GB/s    │         │
│  │  │  ├─ 65536    10.89 µs      │ 51.59 µs      │ 10.89 µs      │ 11.91 µs      │ 100     │ 100
│  │  │  │           6.012 GB/s    │ 1.27 GB/s     │ 6.012 GB/s    │ 5.498 GB/s    │         │
│  │  │  ╰─ 1048576  177.5 µs      │ 364.3 µs      │ 178.8 µs      │ 189.1 µs      │ 100     │ 100
│  │  │              5.904 GB/s    │ 2.877 GB/s    │ 5.861 GB/s    │ 5.544 GB/s    │         │
│  │  ╰─ blake3_mt                 │               │               │               │         │
│  │     ├─ 4096     1.081 µs      │ 5.143 µs      │ 1.087 µs      │ 1.137 µs      │ 100     │ 1600
│  │     │           3.788 GB/s    │ 796.3 MB/s    │ 3.767 GB/s    │ 3.599 GB/s    │         │
│  │     ├─ 16384    3.099 µs      │ 402.3 µs      │ 3.999 µs      │ 14.26 µs      │ 100     │ 100
│  │     │           5.285 GB/s    │ 40.71 MB/s    │ 4.096 GB/s    │ 1.148 GB/s    │         │
│  │     ├─ 65536    8.499 µs      │ 32.99 µs      │ 12.09 µs      │ 13.48 µs      │ 100     │ 100
│  │     │           7.71 GB/s     │ 1.985 GB/s    │ 5.416 GB/s    │ 4.858 GB/s    │         │
│  │     ╰─ 1048576  31.69 µs      │ 117.3 µs      │ 35.49 µs      │ 38.48 µs      │ 100     │ 100
│  │                 33.07 GB/s    │ 8.931 GB/s    │ 29.53 GB/s    │ 27.24 GB/s    │         │
│  ├─ md                           │               │               │               │         │
│  │  ╰─ md5                       │               │               │               │         │
│  │     ├─ 4096     6.499 µs      │ 7.599 µs      │ 6.549 µs      │ 6.584 µs      │ 100     │ 200
│  │     │           630.1 MB/s    │ 538.9 MB/s    │ 625.3 MB/s    │ 622 MB/s      │         │
│  │     ├─ 16384    26.29 µs      │ 29.79 µs      │ 26.49 µs      │ 26.56 µs      │ 100     │ 100
│  │     │           622.9 MB/s    │ 549.8 MB/s    │ 618.2 MB/s    │ 616.8 MB/s    │         │
│  │     ├─ 65536    102.3 µs      │ 289.7 µs      │ 102.9 µs      │ 111.8 µs      │ 100     │ 100
│  │     │           640 MB/s      │ 226.1 MB/s    │ 636.2 MB/s    │ 585.7 MB/s    │         │
│  │     ╰─ 1048576  1.628 ms      │ 1.956 ms      │ 1.706 ms      │ 1.711 ms      │ 100     │ 100
│  │                 644 MB/s      │ 536 MB/s      │ 614.5 MB/s    │ 612.8 MB/s    │         │
│  ╰─ sha                          │               │               │               │         │
│     ├─ sha1                      │               │               │               │         │
│     │  ├─ 4096     1.699 µs      │ 11.49 µs      │ 1.799 µs      │ 1.915 µs      │ 100     │ 100
│     │  │           2.409 GB/s    │ 356.1 MB/s    │ 2.275 GB/s    │ 2.138 GB/s    │         │
│     │  ├─ 16384    6.799 µs      │ 6.849 µs      │ 6.849 µs      │ 6.844 µs      │ 100     │ 200
│     │  │           2.409 GB/s    │ 2.391 GB/s    │ 2.391 GB/s    │ 2.393 GB/s    │         │
│     │  ├─ 65536    26.79 µs      │ 33.79 µs      │ 26.99 µs      │ 28.91 µs      │ 100     │ 100
│     │  │           2.445 GB/s    │ 1.938 GB/s    │ 2.427 GB/s    │ 2.266 GB/s    │         │
│     │  ╰─ 1048576  426.5 µs      │ 638.8 µs      │ 428.9 µs      │ 452 µs        │ 100     │ 100
│     │              2.457 GB/s    │ 1.641 GB/s    │ 2.444 GB/s    │ 2.319 GB/s    │         │
│     ├─ sha2_256                  │               │               │               │         │
│     │  ├─ 4096     1.824 µs      │ 3.524 µs      │ 1.824 µs      │ 1.846 µs      │ 100     │ 800
│     │  │           2.244 GB/s    │ 1.162 GB/s    │ 2.244 GB/s    │ 2.218 GB/s    │         │
│     │  ├─ 16384    7.149 µs      │ 59.24 µs      │ 7.199 µs      │ 7.717 µs      │ 100     │ 200
│     │  │           2.291 GB/s    │ 276.5 MB/s    │ 2.275 GB/s    │ 2.122 GB/s    │         │
│     │  ├─ 65536    28.59 µs      │ 116.8 µs      │ 28.59 µs      │ 29.53 µs      │ 100     │ 100
│     │  │           2.291 GB/s    │ 560.6 MB/s    │ 2.291 GB/s    │ 2.219 GB/s    │         │
│     │  ╰─ 1048576  457.4 µs      │ 805.2 µs      │ 462.5 µs      │ 483.7 µs      │ 100     │ 100
│     │              2.291 GB/s    │ 1.302 GB/s    │ 2.266 GB/s    │ 2.167 GB/s    │         │
│     ├─ sha2_384                  │               │               │               │         │
│     │  ├─ 4096     5.599 µs      │ 17.09 µs      │ 6.999 µs      │ 6.54 µs       │ 100     │ 100
│     │  │           731.4 MB/s    │ 239.5 MB/s    │ 585.1 MB/s    │ 626.2 MB/s    │         │
│     │  ├─ 16384    21.79 µs      │ 28.59 µs      │ 21.79 µs      │ 22.39 µs      │ 100     │ 100
│     │  │           751.5 MB/s    │ 572.8 MB/s    │ 751.5 MB/s    │ 731.6 MB/s    │         │
│     │  ├─ 65536    86.39 µs      │ 87.49 µs      │ 86.89 µs      │ 86.83 µs      │ 100     │ 100
│     │  │           758.5 MB/s    │ 748.9 MB/s    │ 754.1 MB/s    │ 754.7 MB/s    │         │
│     │  ╰─ 1048576  1.378 ms      │ 1.692 ms      │ 1.397 ms      │ 1.412 ms      │ 100     │ 100
│     │              760.5 MB/s    │ 619.3 MB/s    │ 750.3 MB/s    │ 742.3 MB/s    │         │
│     ├─ sha2_512                  │               │               │               │         │
│     │  ├─ 4096     5.649 µs      │ 5.749 µs      │ 5.699 µs      │ 5.69 µs       │ 100     │ 200
│     │  │           724.9 MB/s    │ 712.3 MB/s    │ 718.6 MB/s    │ 719.7 MB/s    │         │
│     │  ├─ 16384    21.89 µs      │ 51.69 µs      │ 21.89 µs      │ 22.3 µs       │ 100     │ 100
│     │  │           748.1 MB/s    │ 316.9 MB/s    │ 748.1 MB/s    │ 734.4 MB/s    │         │
│     │  ├─ 65536    86.39 µs      │ 171.4 µs      │ 86.89 µs      │ 89.31 µs      │ 100     │ 100
│     │  │           758.5 MB/s    │ 382.1 MB/s    │ 754.1 MB/s    │ 733.7 MB/s    │         │
│     │  ╰─ 1048576  1.387 ms      │ 2.055 ms      │ 1.445 ms      │ 1.473 ms      │ 100     │ 100
│     │              755.4 MB/s    │ 510 MB/s      │ 725.4 MB/s    │ 711.8 MB/s    │         │
│     ├─ sha3_256                  │               │               │               │         │
│     │  ├─ 4096     8.499 µs      │ 16.74 µs      │ 8.549 µs      │ 8.67 µs       │ 100     │ 200
│     │  │           481.8 MB/s    │ 244.5 MB/s    │ 479 MB/s      │ 472.3 MB/s    │         │
│     │  ├─ 16384    32.79 µs      │ 124.9 µs      │ 32.99 µs      │ 34.37 µs      │ 100     │ 100
│     │  │           499.5 MB/s    │ 131 MB/s      │ 496.4 MB/s    │ 476.6 MB/s    │         │
│     │  ├─ 65536    129.3 µs      │ 190.6 µs      │ 131.6 µs      │ 134.3 µs      │ 100     │ 100
│     │  │           506.4 MB/s    │ 343.6 MB/s    │ 497.6 MB/s    │ 487.6 MB/s    │         │
│     │  ╰─ 1048576  2.112 ms      │ 2.48 ms       │ 2.201 ms      │ 2.203 ms      │ 100     │ 100
│     │              496.4 MB/s    │ 422.7 MB/s    │ 476.3 MB/s    │ 475.7 MB/s    │         │
│     ├─ sha3_384                  │               │               │               │         │
│     │  ├─ 4096     11.09 µs      │ 98.79 µs      │ 11.09 µs      │ 12.23 µs      │ 100     │ 100
│     │  │           369 MB/s      │ 41.45 MB/s    │ 369 MB/s      │ 334.6 MB/s    │         │
│     │  ├─ 16384    43.59 µs      │ 55.09 µs      │ 43.89 µs      │ 44.07 µs      │ 100     │ 100
│     │  │           375.7 MB/s    │ 297.3 MB/s    │ 373.2 MB/s    │ 371.7 MB/s    │         │
│     │  ├─ 65536    173.6 µs      │ 280 µs        │ 174.6 µs      │ 182.6 µs      │ 100     │ 100
│     │  │           377.2 MB/s    │ 233.9 MB/s    │ 375.1 MB/s    │ 358.8 MB/s    │         │
│     │  ╰─ 1048576  2.795 ms      │ 3.227 ms      │ 2.895 ms      │ 2.912 ms      │ 100     │ 100
│     │              375 MB/s      │ 324.9 MB/s    │ 362.1 MB/s    │ 360 MB/s      │         │
│     ╰─ sha3_512                  │               │               │               │         │
│        ├─ 4096     15.69 µs      │ 104.6 µs      │ 15.79 µs      │ 16.7 µs       │ 100     │ 100
│        │           260.8 MB/s    │ 39.12 MB/s    │ 259.2 MB/s    │ 245.1 MB/s    │         │
│        ├─ 16384    62.99 µs      │ 146.5 µs      │ 63.09 µs      │ 64.37 µs      │ 100     │ 100
│        │           260 MB/s      │ 111.7 MB/s    │ 259.6 MB/s    │ 254.5 MB/s    │         │
│        ├─ 65536    251.2 µs      │ 334.3 µs      │ 251.8 µs      │ 258.2 µs      │ 100     │ 100
│        │           260.7 MB/s    │ 195.9 MB/s    │ 260.1 MB/s    │ 253.7 MB/s    │         │
│        ╰─ 1048576  4.087 ms      │ 4.594 ms      │ 4.17 ms       │ 4.196 ms      │ 100     │ 100
│                    256.5 MB/s    │ 228.2 MB/s    │ 251.4 MB/s    │ 249.8 MB/s    │         │
╰─ non_crypto                      │               │               │               │         │
   ├─ adler                        │               │               │               │         │
   │  ├─ 4096        590.4 ns      │ 821.6 ns      │ 593.5 ns      │ 598.4 ns      │ 100     │ 3200
   │  │              6.937 GB/s    │ 4.985 GB/s    │ 6.901 GB/s    │ 6.844 GB/s    │         │
   │  ├─ 16384       2.299 µs      │ 6.324 µs      │ 2.324 µs      │ 2.382 µs      │ 100     │ 800
   │  │              7.124 GB/s    │ 2.59 GB/s     │ 7.047 GB/s    │ 6.877 GB/s    │         │
   │  ├─ 65536       8.499 µs      │ 52.89 µs      │ 8.499 µs      │ 9.03 µs       │ 100     │ 200
   │  │              7.71 GB/s     │ 1.238 GB/s    │ 7.71 GB/s     │ 7.257 GB/s    │         │
   │  ╰─ 1048576     128.8 µs      │ 155.8 µs      │ 130.3 µs      │ 132.5 µs      │ 100     │ 100
   │                 8.134 GB/s    │ 6.725 GB/s    │ 8.041 GB/s    │ 7.908 GB/s    │         │
   ╰─ crc                          │               │               │               │         │
      ├─ 4096        256 ns        │ 4.274 µs      │ 321.6 ns      │ 344.6 ns      │ 100     │ 3200
      │              15.99 GB/s    │ 958.1 MB/s    │ 12.73 GB/s    │ 11.88 GB/s    │         │
      ├─ 16384       1.024 µs      │ 7.293 µs      │ 1.031 µs      │ 1.15 µs       │ 100     │ 1600
      │              15.98 GB/s    │ 2.246 GB/s    │ 15.89 GB/s    │ 14.23 GB/s    │         │
      ├─ 65536       4.049 µs      │ 9.799 µs      │ 4.074 µs      │ 4.137 µs      │ 100     │ 400
      │              16.18 GB/s    │ 6.687 GB/s    │ 16.08 GB/s    │ 15.84 GB/s    │         │
      ╰─ 1048576     64.59 µs      │ 90.49 µs      │ 65.04 µs      │ 67.58 µs      │ 100     │ 100
                     16.23 GB/s    │ 11.58 GB/s    │ 16.11 GB/s    │ 15.51 GB/s    │         │

AMD Ryzen 7 2700X Eight-Core Processor (x86_64-unknown-linux-gnu)

crc32     - 16.3 GB/s
blake3_mt - 11.1 GB/s
adler     - 4.68 GB/s
blake3    - 2.70 GB/s
sha2_256  - 2.04 GB/s
sha1      - 1.91 GB/s
blake2b   -  921 MB/s
blake2s   -  642 MB/s
md5       -  553 MB/s
sha2_512  -  511 MB/s
sha2_384  -  511 MB/s
sha3_256  -  462 MB/s
sha3_384  -  353 MB/s
sha3_512  -  244 MB/s
Expand full test info
Timer precision: 3.26 µs
checksums            fastest       │ slowest       │ median        │ mean          │ samples │ iters
├─ crypto                          │               │               │               │         │
│  ├─ blake                        │               │               │               │         │
│  │  ├─ blake2b                   │               │               │               │         │
│  │  │  ├─ 4096     4.404 µs      │ 8.316 µs      │ 4.48 µs       │ 4.537 µs      │ 10000   │ 1280000
│  │  │  │           929.9 MB/s    │ 492.5 MB/s    │ 914.1 MB/s    │ 902.7 MB/s    │         │
│  │  │  ├─ 16384    17.45 µs      │ 25.18 µs      │ 17.67 µs      │ 17.83 µs      │ 10000   │ 320000
│  │  │  │           938.6 MB/s    │ 650.5 MB/s    │ 926.9 MB/s    │ 918.8 MB/s    │         │
│  │  │  ├─ 65536    69.83 µs      │ 101.9 µs      │ 70.78 µs      │ 71.33 µs      │ 10000   │ 80000
│  │  │  │           938.4 MB/s    │ 642.8 MB/s    │ 925.7 MB/s    │ 918.7 MB/s    │         │
│  │  │  ╰─ 1048576  1.114 ms      │ 2.24 ms       │ 1.129 ms      │ 1.137 ms      │ 10000   │ 10000
│  │  │              941.1 MB/s    │ 468 MB/s      │ 928.2 MB/s    │ 921.9 MB/s    │         │
│  │  ├─ blake2s                   │               │               │               │         │
│  │  │  ├─ 4096     6.213 µs      │ 12.53 µs      │ 6.334 µs      │ 6.391 µs      │ 10000   │ 640000
│  │  │  │           659.1 MB/s    │ 326.8 MB/s    │ 646.6 MB/s    │ 640.8 MB/s    │         │
│  │  │  ├─ 16384    24.93 µs      │ 62.03 µs      │ 25.4 µs       │ 25.59 µs      │ 10000   │ 160000
│  │  │  │           657 MB/s      │ 264.1 MB/s    │ 645 MB/s      │ 640.2 MB/s    │         │
│  │  │  ├─ 65536    100 µs        │ 212.3 µs      │ 101.5 µs      │ 102.6 µs      │ 10000   │ 40000
│  │  │  │           654.8 MB/s    │ 308.6 MB/s    │ 645.3 MB/s    │ 638.2 MB/s    │         │
│  │  │  ╰─ 1048576  1.596 ms      │ 2.15 ms       │ 1.633 ms      │ 1.632 ms      │ 10000   │ 10000
│  │  │              656.8 MB/s    │ 487.5 MB/s    │ 641.9 MB/s    │ 642.1 MB/s    │         │
│  │  ├─ blake3                    │               │               │               │         │
│  │  │  ├─ 4096     2.268 µs      │ 3.852 µs      │ 2.304 µs      │ 2.323 µs      │ 10000   │ 2560000
│  │  │  │           1.805 GB/s    │ 1.063 GB/s    │ 1.777 GB/s    │ 1.763 GB/s    │         │
│  │  │  ├─ 16384    5.954 µs      │ 6.787 µs      │ 6.047 µs      │ 6.106 µs      │ 10000   │ 640000
│  │  │  │           2.751 GB/s    │ 2.413 GB/s    │ 2.709 GB/s    │ 2.682 GB/s    │         │
│  │  │  ├─ 65536    23.55 µs      │ 45.39 µs      │ 23.86 µs      │ 24.14 µs      │ 10000   │ 160000
│  │  │  │           2.782 GB/s    │ 1.443 GB/s    │ 2.745 GB/s    │ 2.714 GB/s    │         │
│  │  │  ╰─ 1048576  376.8 µs      │ 869.3 µs      │ 382.8 µs      │ 388.3 µs      │ 10000   │ 10000
│  │  │              2.782 GB/s    │ 1.206 GB/s    │ 2.739 GB/s    │ 2.699 GB/s    │         │
│  │  ╰─ blake3_mt                 │               │               │               │         │
│  │     ├─ 4096     2.266 µs      │ 3.907 µs      │ 2.302 µs      │ 2.323 µs      │ 10000   │ 2560000
│  │     │           1.807 GB/s    │ 1.048 GB/s    │ 1.778 GB/s    │ 1.762 GB/s    │         │
│  │     ├─ 16384    10.9 µs       │ 1.401 ms      │ 63.22 µs      │ 65.01 µs      │ 10000   │ 10000
│  │     │           1.501 GB/s    │ 11.69 MB/s    │ 259.1 MB/s    │ 252 MB/s      │         │
│  │     ├─ 65536    17.87 µs      │ 583.4 µs      │ 140.3 µs      │ 134.6 µs      │ 10000   │ 20000
│  │     │           3.665 GB/s    │ 112.3 MB/s    │ 466.7 MB/s    │ 486.6 MB/s    │         │
│  │     ╰─ 1048576  76.29 µs      │ 693.5 µs      │ 84.62 µs      │ 94.19 µs      │ 10000   │ 40000
│  │                 13.74 GB/s    │ 1.511 GB/s    │ 12.39 GB/s    │ 11.13 GB/s    │         │
│  ├─ md                           │               │               │               │         │
│  │  ╰─ md5                       │               │               │               │         │
│  │     ├─ 4096     7.402 µs      │ 12.17 µs      │ 7.536 µs      │ 7.633 µs      │ 10000   │ 640000
│  │     │           553.3 MB/s    │ 336.5 MB/s    │ 543.5 MB/s    │ 536.6 MB/s    │         │
│  │     ├─ 16384    29.22 µs      │ 46.76 µs      │ 29.67 µs      │ 29.95 µs      │ 10000   │ 160000
│  │     │           560.5 MB/s    │ 350.3 MB/s    │ 552.1 MB/s    │ 546.9 MB/s    │         │
│  │     ├─ 65536    116.7 µs      │ 192.7 µs      │ 117.7 µs      │ 119.2 µs      │ 10000   │ 40000
│  │     │           561.2 MB/s    │ 340 MB/s      │ 556.5 MB/s    │ 549.5 MB/s    │         │
│  │     ╰─ 1048576  1.863 ms      │ 2.265 ms      │ 1.893 ms      │ 1.894 ms      │ 10000   │ 10000
│  │                 562.7 MB/s    │ 462.9 MB/s    │ 553.6 MB/s    │ 553.3 MB/s    │         │
│  ╰─ sha                          │               │               │               │         │
│     ├─ sha1                      │               │               │               │         │
│     │  ├─ 4096     2.135 µs      │ 3.819 µs      │ 2.16 µs       │ 2.18 µs       │ 10000   │ 2560000
│     │  │           1.917 GB/s    │ 1.072 GB/s    │ 1.895 GB/s    │ 1.878 GB/s    │         │
│     │  ├─ 16384    8.389 µs      │ 13.41 µs      │ 8.515 µs      │ 8.592 µs      │ 10000   │ 640000
│     │  │           1.953 GB/s    │ 1.221 GB/s    │ 1.923 GB/s    │ 1.906 GB/s    │         │
│     │  ├─ 65536    33.57 µs      │ 49.3 µs       │ 33.88 µs      │ 34.18 µs      │ 10000   │ 160000
│     │  │           1.951 GB/s    │ 1.329 GB/s    │ 1.934 GB/s    │ 1.917 GB/s    │         │
│     │  ╰─ 1048576  536 µs        │ 646.5 µs      │ 542.9 µs      │ 547.9 µs      │ 10000   │ 10000
│     │              1.956 GB/s    │ 1.621 GB/s    │ 1.931 GB/s    │ 1.913 GB/s    │         │
│     ├─ sha2_256                  │               │               │               │         │
│     │  ├─ 4096     1.994 µs      │ 3.258 µs      │ 2.02 µs       │ 2.038 µs      │ 10000   │ 2560000
│     │  │           2.053 GB/s    │ 1.257 GB/s    │ 2.026 GB/s    │ 2.008 GB/s    │         │
│     │  ├─ 16384    7.86 µs       │ 11.67 µs      │ 7.956 µs      │ 8.033 µs      │ 10000   │ 640000
│     │  │           2.084 GB/s    │ 1.403 GB/s    │ 2.059 GB/s    │ 2.039 GB/s    │         │
│     │  ├─ 65536    31.29 µs      │ 36.76 µs      │ 31.83 µs      │ 32.05 µs      │ 10000   │ 160000
│     │  │           2.094 GB/s    │ 1.782 GB/s    │ 2.058 GB/s    │ 2.044 GB/s    │         │
│     │  ╰─ 1048576  500.1 µs      │ 708.1 µs      │ 509.8 µs      │ 513.1 µs      │ 10000   │ 10000
│     │              2.096 GB/s    │ 1.48 GB/s     │ 2.056 GB/s    │ 2.043 GB/s    │         │
│     ├─ sha2_384                  │               │               │               │         │
│     │  ├─ 4096     8.144 µs      │ 15.6 µs       │ 8.263 µs      │ 8.326 µs      │ 10000   │ 640000
│     │  │           502.9 MB/s    │ 262.4 MB/s    │ 495.6 MB/s    │ 491.9 MB/s    │         │
│     │  ├─ 16384    28.41 µs      │ 44.87 µs      │ 32.27 µs      │ 32.59 µs      │ 10000   │ 160000
│     │  │           576.6 MB/s    │ 365.1 MB/s    │ 507.5 MB/s    │ 502.7 MB/s    │         │
│     │  ├─ 65536    126.4 µs      │ 177.2 µs      │ 128.1 µs      │ 129.1 µs      │ 10000   │ 40000
│     │  │           518.3 MB/s    │ 369.7 MB/s    │ 511.5 MB/s    │ 507.4 MB/s    │         │
│     │  ╰─ 1048576  2.015 ms      │ 2.333 ms      │ 2.052 ms      │ 2.052 ms      │ 10000   │ 10000
│     │              520.3 MB/s    │ 449.2 MB/s    │ 510.8 MB/s    │ 510.8 MB/s    │         │
│     ├─ sha2_512                  │               │               │               │         │
│     │  ├─ 4096     8.124 µs      │ 11.3 µs       │ 8.266 µs      │ 8.36 µs       │ 10000   │ 640000
│     │  │           504.1 MB/s    │ 362.2 MB/s    │ 495.4 MB/s    │ 489.9 MB/s    │         │
│     │  ├─ 16384    31.7 µs       │ 49.96 µs      │ 32.27 µs      │ 32.68 µs      │ 10000   │ 160000
│     │  │           516.7 MB/s    │ 327.9 MB/s    │ 507.6 MB/s    │ 501.2 MB/s    │         │
│     │  ├─ 65536    126.2 µs      │ 153.7 µs      │ 128.1 µs      │ 129.7 µs      │ 10000   │ 40000
│     │  │           519 MB/s      │ 426.3 MB/s    │ 511.4 MB/s    │ 505.1 MB/s    │         │
│     │  ╰─ 1048576  2.012 ms      │ 2.49 ms       │ 2.051 ms      │ 2.051 ms      │ 10000   │ 10000
│     │              521 MB/s      │ 421 MB/s      │ 511.1 MB/s    │ 511 MB/s      │         │
│     ├─ sha3_256                  │               │               │               │         │
│     │  ├─ 4096     9.026 µs      │ 13.9 µs       │ 9.275 µs      │ 9.34 µs       │ 10000   │ 640000
│     │  │           453.7 MB/s    │ 294.4 MB/s    │ 441.6 MB/s    │ 438.5 MB/s    │         │
│     │  ├─ 16384    35.11 µs      │ 64.52 µs      │ 35.67 µs      │ 35.87 µs      │ 10000   │ 160000
│     │  │           466.5 MB/s    │ 253.9 MB/s    │ 459.1 MB/s    │ 456.7 MB/s    │         │
│     │  ├─ 65536    139.2 µs      │ 251 µs        │ 141.6 µs      │ 142.7 µs      │ 10000   │ 40000
│     │  │           470.7 MB/s    │ 261 MB/s      │ 462.6 MB/s    │ 459 MB/s      │         │
│     │  ╰─ 1048576  2.235 ms      │ 2.666 ms      │ 2.268 ms      │ 2.271 ms      │ 10000   │ 10000
│     │              469 MB/s      │ 393.3 MB/s    │ 462.2 MB/s    │ 461.6 MB/s    │         │
│     ├─ sha3_384                  │               │               │               │         │
│     │  ├─ 4096     11.6 µs       │ 27.22 µs      │ 11.77 µs      │ 11.88 µs      │ 10000   │ 320000
│     │  │           352.8 MB/s    │ 150.4 MB/s    │ 347.8 MB/s    │ 344.5 MB/s    │         │
│     │  ├─ 16384    45.71 µs      │ 105.4 µs      │ 46.77 µs      │ 47.1 µs       │ 10000   │ 80000
│     │  │           358.4 MB/s    │ 155.3 MB/s    │ 350.2 MB/s    │ 347.8 MB/s    │         │
│     │  ├─ 65536    182.3 µs      │ 231.2 µs      │ 185.2 µs      │ 187.2 µs      │ 10000   │ 20000
│     │  │           359.4 MB/s    │ 283.4 MB/s    │ 353.6 MB/s    │ 350 MB/s      │         │
│     │  ╰─ 1048576  2.915 ms      │ 3.896 ms      │ 2.961 ms      │ 2.968 ms      │ 10000   │ 10000
│     │              359.6 MB/s    │ 269.1 MB/s    │ 354.1 MB/s    │ 353.2 MB/s    │         │
│     ╰─ sha3_512                  │               │               │               │         │
│        ├─ 4096     16.38 µs      │ 24.46 µs      │ 16.74 µs      │ 16.85 µs      │ 10000   │ 320000
│        │           250 MB/s      │ 167.3 MB/s    │ 244.5 MB/s    │ 243 MB/s      │         │
│        ├─ 16384    65.77 µs      │ 75.67 µs      │ 66.8 µs       │ 67.2 µs       │ 10000   │ 80000
│        │           249.1 MB/s    │ 216.4 MB/s    │ 245.2 MB/s    │ 243.7 MB/s    │         │
│        ├─ 65536    262.5 µs      │ 410.6 µs      │ 267.3 µs      │ 269.2 µs      │ 10000   │ 20000
│        │           249.6 MB/s    │ 159.5 MB/s    │ 245 MB/s      │ 243.4 MB/s    │         │
│        ╰─ 1048576  4.218 ms      │ 6.898 ms      │ 4.289 ms      │ 4.294 ms      │ 10000   │ 10000
│                    248.5 MB/s    │ 151.9 MB/s    │ 244.4 MB/s    │ 244.1 MB/s    │         │
╰─ non_crypto                      │               │               │               │         │
   ├─ adler                        │               │               │               │         │
   │  ├─ 4096        653.3 ns      │ 1.356 µs      │ 668.3 ns      │ 672.9 ns      │ 10000   │ 5120000
   │  │              6.268 GB/s    │ 3.018 GB/s    │ 6.128 GB/s    │ 6.086 GB/s    │         │
   │  ├─ 16384       2.577 µs      │ 3.03 µs       │ 2.624 µs      │ 2.638 µs      │ 10000   │ 1280000
   │  │              6.357 GB/s    │ 5.407 GB/s    │ 6.242 GB/s    │ 6.21 GB/s     │         │
   │  ├─ 65536       12.31 µs      │ 27.16 µs      │ 12.73 µs      │ 12.85 µs      │ 10000   │ 320000
   │  │              5.321 GB/s    │ 2.412 GB/s    │ 5.146 GB/s    │ 5.099 GB/s    │         │
   │  ╰─ 1048576     217.8 µs      │ 397.6 µs      │ 223 µs        │ 224.1 µs      │ 10000   │ 20000
   │                 4.813 GB/s    │ 2.636 GB/s    │ 4.7 GB/s      │ 4.677 GB/s    │         │
   ╰─ crc                          │               │               │               │         │
      ├─ 4096        253.3 ns      │ 284.7 ns      │ 259 ns        │ 259.4 ns      │ 10000   │ 20480000
      │              16.16 GB/s    │ 14.38 GB/s    │ 15.81 GB/s    │ 15.78 GB/s    │         │
      ├─ 16384       989.5 ns      │ 1.603 µs      │ 1.007 µs      │ 1.012 µs      │ 10000   │ 5120000
      │              16.55 GB/s    │ 10.21 GB/s    │ 16.25 GB/s    │ 16.17 GB/s    │         │
      ├─ 65536       3.918 µs      │ 5.189 µs      │ 3.984 µs      │ 4.012 µs      │ 10000   │ 1280000
      │              16.72 GB/s    │ 12.62 GB/s    │ 16.44 GB/s    │ 16.33 GB/s    │         │
      ╰─ 1048576     62.83 µs      │ 100.5 µs      │ 63.75 µs      │ 64.22 µs      │ 10000   │ 80000
                     16.68 GB/s    │ 10.42 GB/s    │ 16.44 GB/s    │ 16.32 GB/s    │         │

AMD Ryzen 9 3900X 12-Core Processor (x86_64-unknown-linux-gnu)

crc32    - 15.8 GB/s
adler    - 4.59 GB/s
blake3   - 4.50 GB/s
sha2_256 - 1.96 GB/s
sha1     - 1.80 GB/s
blake2b  -  807 MB/s
Expand full test info
Timer precision: 20 ns
checksums      fastest       │ slowest       │ median        │ mean          │ samples │ iters
├─ adler                     │               │               │               │         │
│  ├─ 4096     769.7 ns      │ 37.39 µs      │ 779.7 ns      │ 788.3 ns      │ 10000   │ 10000
│  ├─ 16384    2.979 µs      │ 16.75 µs      │ 2.999 µs      │ 3.02 µs       │ 10000   │ 10000
│  ├─ 65536    12.77 µs      │ 51.32 µs      │ 12.87 µs      │ 12.97 µs      │ 10000   │ 10000
│  ╰─ 1048576  209.5 µs      │ 1.055 ms      │ 212.4 µs      │ 217.7 µs      │ 10000   │ 10000
├─ blake2b_32                │               │               │               │         │
│  ├─ 4096     4.829 µs      │ 17.51 µs      │ 4.839 µs      │ 4.875 µs      │ 10000   │ 10000
│  ├─ 16384    19.19 µs      │ 30.61 µs      │ 19.21 µs      │ 19.34 µs      │ 10000   │ 10000
│  ├─ 65536    76.19 µs      │ 112.3 µs      │ 76.7 µs       │ 77.22 µs      │ 10000   │ 10000
│  ╰─ 1048576  1.221 ms      │ 2.129 ms      │ 1.237 ms      │ 1.238 ms      │ 10000   │ 10000
├─ blake3                    │               │               │               │         │
│  ├─ 4096     1.389 µs      │ 29.21 µs      │ 1.409 µs      │ 1.422 µs      │ 10000   │ 10000
│  ├─ 16384    3.529 µs      │ 9.489 µs      │ 3.559 µs      │ 3.583 µs      │ 10000   │ 10000
│  ├─ 65536    13.76 µs      │ 24.98 µs      │ 13.89 µs      │ 14.01 µs      │ 10000   │ 10000
│  ╰─ 1048576  211.9 µs      │ 356.1 µs      │ 222.8 µs      │ 222.2 µs      │ 10000   │ 10000
├─ crc                       │               │               │               │         │
│  ├─ 4096     251 ns        │ 2.617 µs      │ 253.5 ns      │ 256.1 ns      │ 10000   │ 80000
│  ├─ 16384    1.004 µs      │ 6.054 µs      │ 1.009 µs      │ 1.018 µs      │ 10000   │ 20000
│  ├─ 65536    3.949 µs      │ 13.85 µs      │ 3.979 µs      │ 3.998 µs      │ 10000   │ 10000
│  ╰─ 1048576  59.31 µs      │ 101.7 µs      │ 63.28 µs      │ 63.29 µs      │ 10000   │ 10000
├─ sha1                      │               │               │               │         │
│  ├─ 4096     2.209 µs      │ 17.66 µs      │ 2.229 µs      │ 2.242 µs      │ 10000   │ 10000
│  ├─ 16384    8.609 µs      │ 18.16 µs      │ 8.659 µs      │ 8.692 µs      │ 10000   │ 10000
│  ├─ 65536    34.43 µs      │ 45.86 µs      │ 34.44 µs      │ 34.56 µs      │ 10000   │ 10000
│  ╰─ 1048576  543.9 µs      │ 567.9 µs      │ 552.1 µs      │ 552.2 µs      │ 10000   │ 10000
╰─ sha256                    │               │               │               │         │
   ├─ 4096     2.029 µs      │ 11.79 µs      │ 2.039 µs      │ 2.05 µs       │ 10000   │ 10000
   ├─ 16384    7.879 µs      │ 28.27 µs      │ 7.969 µs      │ 8.02 µs       │ 10000   │ 10000
   ├─ 65536    31.32 µs      │ 57.85 µs      │ 31.69 µs      │ 31.96 µs      │ 10000   │ 10000
   ╰─ 1048576  500.4 µs      │ 538.8 µs      │ 508.2 µs      │ 508.9 µs      │ 10000   │ 10000

About

rust checksum benchmarks

Resources

Stars

Watchers

Forks

Languages