Apple M1 · P-core · ~3.2 GHz

Benchmarks

Reference C implementations compiled with Apple clang -O3 -mcpu=native. Figures are from the project’s self-contained benchmark harness.

26.8 GB/s 1 MiB input
1.45× vs. ChibiHash v2 at 1 MiB
9.64 B/cy SMHasher3 bulk
31.4 cy SMHasher3 1–31 byte average

Large-input throughput

GB/s; higher is better.

Size (bytes) ChibiHash v1 ChibiHash v2 hayahash64
64 7.5 9.8 10.1
256 15.5 17.6 17.7
1,024 15.3 19.2 23.8
16,384 14.4 18.5 26.5
1,048,576 14.4 18.5 26.8

Small-input latency

Seed-chained nanoseconds per hash; lower is better.

Length ChibiHash v1 ChibiHash v2 hayahash64
4 10.0 10.4 7.8
8 6.6 10.0 7.9
16 6.9 10.2 7.8
32 12.3 11.7 10.3
64 14.5 13.3 12.1
128 18.8 17.1 15.7

ChibiHash v1’s 8- and 16-byte paths are faster in this latency test, but v1 does not pass the full SMHasher3 suite.

Small-input throughput

Independent hashes, nanoseconds per hash; lower is better.

Length ChibiHash v1 ChibiHash v2 hayahash64
4 7.5 4.4 3.1
8 4.6 4.6 3.1
16 5.2 5.1 3.1
32 6.9 5.4 5.3
64 8.6 6.6 6.4
128 11.9 9.2 8.8

SMHasher3 speed tests

Test ChibiHash v2 hayahash64
Bulk, bytes/cycle 6.19 9.64
1–31 byte keys, average 36.3 cy/hash 31.4 cy/hash

Reproduce

Performance

make -C tests run-bench

Local quality harness

make -C tests run-quality

ChibiHash v1 and v2 reference sources are vendored in the test directory, so the comparison is self-contained. Results vary by CPU, compiler, and surrounding workload.