On Fri, 5 Dec 2008, Ryan Ingram wrote:

You're testing the interpreted code, so it's not surprising that the
naive version performs better; the interpretive overhead only applies
to your bit of glue code.

I wanted to avoid the optimizer to do clever things itself.

Alternatively, at least compile the module with optimizations before
running it in ghci:

ryani$ ghc -ddump-simpl -O2 -c foldlr.hs >foldlr.core
(This gives you "functional assembly language" to look at for
examining code generation)

ryani$ ghci foldlr.hs
[...]
Prelude FoldLR> :set +s
Prelude FoldLR> test
(1000000,'a')
(0.39 secs, 70852332 bytes)
Prelude FoldLR> testNaive
(1000000,'a')
(0.42 secs, 105383824 bytes)

There is still no clear advantage of foldl'r compared to foldl'rNaive, is it?
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to