
On Tue, 2014-06-24 at 21:38 +0530, C K Kashyap wrote:
Dear cafe,
I have created a reproducible app here - https://github.com/ckkashyap/haskell-perf-repro
Essentially I am trying to open a number of files and printing out their sized by reading them in and computing it's length.
I have the equivalent perl program also there. I'd appreciate it very much if someone could take a look at my Haskell implementation and point out what I am doing wrong. Since it's over 50 times slower than the perl code, I assume I am doing something obviously incorrect.
That's simply because your Haskell program is doing something completely different than your Perl code. Using `String` is the biggest offense. You're creating huge lists of `Char`s instead of working on arrays of bytes, like your Perl code does. I made some trivial changes to bring the Haskell code on par with your Perl code speed-wise at https://github.com/NicolasT/haskell-perf-repro/compare/ckkashyap:master...ma... Check it out! Nicolas