[Haskell-cafe] Sub-optimal [code]
Daniel Fischer
daniel.is.fischer at googlemail.com
Tue Feb 15 23:04:31 CET 2011
On Tuesday 15 February 2011 22:20:06, Claude Heiland-Allen wrote:
>
> Compare with the heap profile graph output from this short program which
> uses a horrible data-dependency hack to force recomputation:
>
> main = do
> print $ length
> [(x,y) | x <- [(1 :: Int) .. 10000], y <- [(1 :: Int) .. 10000]]
> print $ length
> [(x,y) | x <- [(1 :: Int) .. 10000], y <- [x+1-x .. 10000]]
>
> The heap profile graph looks a little like this:
>
> ########
> ########
> ########
> ########
> ########_______
>
> (Tested with ghc 6.12.3 -O2 on linux x86_64)
>
Yup, confirmed with 6.12.3 and 7.0.1 on x86 linux (again behaves
differently with -fno-full-laziness).
Not only does the second use less memory, it is also faster (something
around 10%).
Thanks for the nice example.
More information about the Haskell-Cafe
mailing list