@hackage PerfectHash0.1.5
A perfect hashing library for mapping bytestrings to values.
Categories
License
BSD-3-Clause
Maintainer
Mark Wotton <mwotton@gmail.com>
Links
Versions
Deprecated
Dependencies (7)
- array
- base >=4.5 && <5.2
- binary
- bytestring
- containers
- digest Show all…
Dependents (1)
@hackage/acme-everything
This is a thin haskell wrapper around the CMPH library, obtainable at http://cmph.sf.net. I assume you have it installed in /usr/local/lib.
The motivation is mostly speed, and wren thornton's bytestring-trie seems to be the main competition:
% ./dist/build/benchmark_trie/benchmark_trie
- trie lookup: 1.136ns per iteration / 880403.98 per second.
% ./dist/build/benchmark/benchmark
- perfect lookup: 0.687ns per iteration / 1456455.69 per second.
it also uses less space in the haskell heap, building once and doing the same number of lookups:
PerfectHash: total alloc = 2,525,223,964 bytes (excludes profiling overheads)
Trie: total alloc = 9,806,202,096 bytes (excludes profiling overheads)
although this is not an entirely fair comparison given how much PerfectHash stores on the C side.