
If I compile the attach code with GHC of the newest ghc-7.0 darcs branch, the compiled program is much slower than byte code. This phenomenon does not exist in GHC 6.12.3.
6.12.3 runghc -- 6.23s user 0.59s system 98% cpu 6.912 total ghc -- 5.72s user 0.70s system 99% cpu 6.422 total ghc -O -- 5.70s user 0.67s system 99% cpu 6.376 total ghc -O2 -- 5.69s user 0.67s system 99% cpu 6.373 total
ghc-7.0 runghc -- 6.43s user 0.10s system 99% cpu 6.593 total ghc -- 9.20s user 0.09s system 99% cpu 9.302 total ghc -O -- 9.20s user 0.09s system 99% cpu 9.298 total ghc -O2 -- 9.38s user 0.09s system 99% cpu 9.478 total
Is this a bug?
I don't see the same results here (x86_64/Linux). This is the 7.0 branch built last night: $ ghc-stable-nightly2 ./kazu.hs -O2 -fforce-recomp; time ./kazu [1 of 1] Compiling Main ( kazu.hs, kazu.o ) Linking kazu ... 8.58s real 8.54s user 0.04s system 99% ./kazu $ time runghc -f ghc-stable-nightly2 ./kazu.hs -O2 -fforce-recomp; 16.92s real 14.21s user 2.70s system 99% runghc -f ghc-stable-nightly2 ./kazu.hs -O2 -fforce-recomp However, there is a fairly large difference between the 7.0 branch and HEAD: $ ghc-nightly2 ./kazu.hs -O2 -fforce-recomp; time ./kazu [1 of 1] Compiling Main ( kazu.hs, kazu.o ) Linking kazu ... 4.17s real 4.16s user 0.01s system 99% ./kazu HEAD is more than twice as fast on this program. Fusion not working, perhaps? Cheers, Simon
My environment is Mac which runs Snow Leopard.
--Kazu
---- import System.IO
n :: Int n = 10000
main :: IO () main = withFile "/dev/null" WriteMode $ \h -> hPutStr h . foldr1 (++) . replicate n . replicate n $ 'a' ----