[Haskell-cafe] [RFC] benchmarks of bytestrings, teaser
Daniel Fischer
daniel.is.fischer at web.de
Sat Dec 15 22:53:53 EST 2007
Am Sonntag, 16. Dezember 2007 04:07 schrieb Don Stewart:
> ------------------------------------------------------------------------
> Program 7:
>
> ==============================
> hs/space-xxxxx-foldl.hs:
> {-# LANGUAGE BangPatterns #-}
>
> cnt :: String -> Int
> cnt bs = foldl (\sum c -> if c == ' ' then sum+1 else sum) 0 bs
>
> main = do s <- getContents
> print (cnt s)
>
> Hmm. Lazy accumulator eh, on String? Should exhibit a space leak.
Doesn't (with -O2, at least), seems ghc's strictness analyser did a good job.
It is indeed about 10* slower than ByteStrings, but very memory friendly -
and, actually on my machine it's faster (not much) than Data.List.foldl' .
And, again on my machine, Programme 3 is almost as slow when compiled with
6.8.1 and twice as slow when compiled with 6.6.1.
> Nice little benchmark.
>
> -- Don
Cheers,
Daniel
More information about the Haskell-Cafe
mailing list