
deliverable:
I dump results of a computation as a Data.Trie of [(Int,Float)]. It contains about 5 million entries, with the lists of 35 or less pairs each. It takes 8 minutes to load with Data.Binary and lookup a single key. What can take so long? If I change from compressed to uncompressed (and then decode), it's the same time... It's not IO, CPU is loaded 100%.
I'm now thinking of using cereal. Given I have Data.Binary in place, what needs to be changed to work with cereal? Is it binary- compatible? How can one construct a cereal instance for Data.Trie?
cereal and binary are almost identical, one will load from a single strict bytestring, one will load from a chunk of strict bytestrings. I'd imagine that constructing your list is the problem, not the parsing part. Do some profiling, since I'm doubtful switching to cereal will make much of a difference. -- Don