
22 Jan
2010
22 Jan
'10
1:08 p.m.
jmillikin:
There's no such thing as "cheating", though that particular code won't work for my purposes because it assumes the output is merely a stream of "null". Fine for the benchmark, but not extractable to the full problem.
I wonder: is Handle known to be particularly slow? This code only has to work on Linux and BSD, so if using (for example) a POSIX fd would be much faster, it could bring the Haskell version much closer to C.
Just make sure you're using the same data types and IO methods as in C, and you'll get the same performance. For serializing/writing to packed data, Data.Binary or cereal are a good choice for building bytestrings efficiently, which in turn can be output quickly via bytestring IO. -- Don