Readme for PerfectHash-0.1.4
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.