[Haskell-cafe] Re: Is Haskell capable of matching C in string processing performance?

Heinrich Apfelmus apfelmus at quantentunnel.de
Fri Jan 22 05:00:14 EST 2010


Don Stewart wrote:
> jmillikin:
>> Here's the fastest Haskell version I could come up with. It discards
>> all error handling, validation, and correctness in the name of
>> performance, but still can't get anywhere near C:
>> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=16423
> 
> Thanks for posting the code.
> 
> You're not using bytestrings??
> 
> They were invented to deal with the problem of [Char] being a poor
> structure for large scale string processing, and you should have no
> problem getting C-like string performance.
> 
>     http://www.cse.unsw.edu.au/~dons/papers/CSL06.html

In my limited experience, ByteStrings are great for reading data, but
not that good for writing data that is being generated on the fly. For
writing, good old difference lists or the  Builder  monoid / Put monad
from Data.Binary seem to be best.


Regards,
Heinrich Apfelmus

--
http://apfelmus.nfshost.com



More information about the Haskell-Cafe mailing list