[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