ocaml-containers/benchs
Simon Cruanes bb6de2ff05 CCInt.hash: replace OCaml Int64 loop with C stub (FNV-1)
Implement FNV-1 hashing for CCInt.hash as a C stub instead of a
pure-OCaml Int64-based loop. The core hash function operates on int64
with separate native/bytecode entry points for both int and int64.

- cc_stubs.c: cc_fnv_hash_int64 core, with int and int64 wrappers
- Uses [@untagged] for int args, [@unboxed] ready for int64
- OCAML_INT_MASK ensures correct byte extraction for 63-bit ints
- Hash values are unchanged from the previous OCaml implementation

Also adds a throughput benchmark in benchs/run_benchs.ml comparing
the old pure-OCaml FNV hash vs the new C stub (~2x faster).
2026-02-16 12:48:12 +00:00
..
dune CCInt.hash: replace OCaml Int64 loop with C stub (FNV-1) 2026-02-16 12:48:12 +00:00
objsize.ml reformat 2022-07-04 13:36:06 -04:00
ref_impl.ml move to ocamlformat 0.27, format code 2025-11-25 20:11:54 -05:00
run_bench_hash.ml move to dune 3.0, fix warnings 2024-05-13 21:42:54 -04:00
run_benchs.ml CCInt.hash: replace OCaml Int64 loop with C stub (FNV-1) 2026-02-16 12:48:12 +00:00
run_benchs.sh helper script to run benchs 2024-05-13 21:05:55 -04:00
run_objsize.ml reformat 2022-07-04 13:36:06 -04:00