
On Mon, 2009-02-09 at 12:49 +0100, Ketil Malde wrote:
Hi,
I'm currently working on a program that parses a large binary file and produces various textual outputs extracted from it. Simple enough.
But: since we're talking large amounts of data, I'd like to have reasonable performance.
Reading the binary file is very efficient thanks to Data.Binary. However, output is a different matter. Currently, my code looks something like:
Have you considered using Data.Binary to output the data too? It has a pretty efficient underlying monoid for accumulating output data in a buffer. You'd want some wrapper functions over the top to make it a bit nicer for your use case, but it should work and should be quick. It generates a lazy bytestring, but does so with a few large chunks so the IO will still be quick. Duncan