/checksum-benchmarks

32bit checksum benchmarks

Primary LanguageRust

checksum benchmarks

Run with

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

Results

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

Timer precision: 41 ns
checksums       fastest       │ slowest       │ median        │ mean          │ samples │ iters
├─ adler                      │               │               │               │         │
│  ├─ 4096      1.249 µs      │ 49.2 µs       │ 1.541 µs      │ 1.677 µs      │ 10000   │ 10000
│  ├─ 16384     3.165 µs      │ 23.08 µs      │ 3.666 µs      │ 3.975 µs      │ 10000   │ 10000
│  ├─ 65536     10.54 µs      │ 98.87 µs      │ 11.2 µs       │ 11.76 µs      │ 10000   │ 10000
│  ╰─ 1048576   179.1 µs      │ 1.223 ms      │ 186.6 µs      │ 187.4 µs      │ 10000   │ 10000
├─ blake2b_32                 │               │               │               │         │
│  ├─ 4096      3.499 µs      │ 40.62 µs      │ 3.582 µs      │ 3.73 µs       │ 10000   │ 10000
│  ├─ 16384     14.04 µs      │ 32.29 µs      │ 14.2 µs       │ 14.42 µs      │ 10000   │ 10000
│  ├─ 65536     56.58 µs      │ 95.41 µs      │ 56.79 µs      │ 57.47 µs      │ 10000   │ 10000
│  ╰─ 1048576   907.1 µs      │ 1.118 ms      │ 911 µs        │ 914.2 µs      │ 10000   │ 10000
├─ blake2b_512                │               │               │               │         │
│  ├─ 4096      3.499 µs      │ 28.41 µs      │ 3.582 µs      │ 3.673 µs      │ 10000   │ 10000
│  ├─ 16384     14.08 µs      │ 42.83 µs      │ 14.2 µs       │ 14.54 µs      │ 10000   │ 10000
│  ├─ 65536     56.54 µs      │ 93.79 µs      │ 56.74 µs      │ 57.18 µs      │ 10000   │ 10000
│  ╰─ 1048576   906.9 µs      │ 16.91 ms      │ 910.9 µs      │ 921.6 µs      │ 10000   │ 10000
├─ blake2s_256                │               │               │               │         │
│  ├─ 4096      5.874 µs      │ 21.66 µs      │ 5.999 µs      │ 6.151 µs      │ 10000   │ 10000
│  ├─ 16384     23.7 µs       │ 43.83 µs      │ 23.87 µs      │ 24.12 µs      │ 10000   │ 10000
│  ├─ 65536     95.08 µs      │ 139.6 µs      │ 95.37 µs      │ 96.06 µs      │ 10000   │ 10000
│  ╰─ 1048576   1.523 ms      │ 1.761 ms      │ 1.529 ms      │ 1.535 ms      │ 10000   │ 10000
├─ blake2s_32                 │               │               │               │         │
│  ├─ 4096      5.833 µs      │ 19.83 µs      │ 5.958 µs      │ 6.123 µs      │ 10000   │ 10000
│  ├─ 16384     23.7 µs       │ 42.91 µs      │ 23.87 µs      │ 24.14 µs      │ 10000   │ 10000
│  ├─ 65536     95.08 µs      │ 139.1 µs      │ 95.37 µs      │ 96.06 µs      │ 10000   │ 10000
│  ╰─ 1048576   1.523 ms      │ 1.861 ms      │ 1.528 ms      │ 1.533 ms      │ 10000   │ 10000
├─ blake3                     │               │               │               │         │
│  ├─ 4096      2.04 µs       │ 32.62 µs      │ 2.124 µs      │ 2.164 µs      │ 10000   │ 10000
│  ├─ 16384     8.082 µs      │ 27.54 µs      │ 8.166 µs      │ 8.41 µs       │ 10000   │ 10000
│  ├─ 65536     32.29 µs      │ 60.95 µs      │ 32.41 µs      │ 32.79 µs      │ 10000   │ 10000
│  ╰─ 1048576   517.9 µs      │ 640.2 µs      │ 518.5 µs      │ 520.8 µs      │ 10000   │ 10000
├─ crc                        │               │               │               │         │
│  ├─ 4096      441.8 ns      │ 3.139 µs      │ 457.5 ns      │ 471.5 ns      │ 10000   │ 80000
│  ├─ 16384     1.811 µs      │ 12.56 µs      │ 1.874 µs      │ 1.947 µs      │ 10000   │ 20000
│  ├─ 65536     7.374 µs      │ 29.04 µs      │ 7.499 µs      │ 7.746 µs      │ 10000   │ 10000
│  ╰─ 1048576   119.5 µs      │ 163.3 µs      │ 119.7 µs      │ 120.6 µs      │ 10000   │ 10000
├─ sha1                       │               │               │               │         │
│  ├─ 4096      3.749 µs      │ 25.29 µs      │ 3.874 µs      │ 3.977 µs      │ 10000   │ 10000
│  ├─ 16384     15.04 µs      │ 44.66 µs      │ 15.16 µs      │ 15.46 µs      │ 10000   │ 10000
│  ├─ 65536     60.12 µs      │ 111.2 µs      │ 60.37 µs      │ 60.95 µs      │ 10000   │ 10000
│  ╰─ 1048576   961 µs        │ 1.107 ms      │ 967.5 µs      │ 968.5 µs      │ 10000   │ 10000
╰─ sha256                     │               │               │               │         │
   ├─ 4096      10.99 µs      │ 26.04 µs      │ 11.12 µs      │ 11.24 µs      │ 10000   │ 10000
   ├─ 16384     43.79 µs      │ 81.66 µs      │ 43.99 µs      │ 44.7 µs       │ 10000   │ 10000
   ├─ 65536     175 µs        │ 291.9 µs      │ 175.4 µs      │ 176.5 µs      │ 10000   │ 10000
   ╰─ 1048576   2.804 ms      │ 3.582 ms      │ 2.81 ms       │ 2.816 ms      │ 10000   │ 10000

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

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