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.