[Haskell-cafe] Need help - my haskell code is over 50 times slower than equivalent perl implementation

Nicolas Trangez nicolas at incubaid.com
Tue Jun 24 17:05:22 UTC 2014

On Tue, 2014-06-24 at 22:02 +0530, C K Kashyap wrote:
> If I use mapM as suggested by others, I quickly run into -
> openFile: resource exhausted (Too many open files)

You should `seq` the calculated length before returning the value,
otherwise the file descriptor needs to be kept open until the processing
result is used (when printing the result list), and you exhaust your

Anyway, for giggles I added concurrency support using `async` and IO
handling using `pipes`/`pipes-bytestring` to my fork in
Using the sample dataset created by your Makefile, this version is
somewhat slower than the previous (and your Perl script), but in case
the dataset is huge (and depending on the block-device you're using, the
layout of the files on it,... the lot) it might help (or might not).


More information about the Haskell-Cafe mailing list