[GHC] #14414: Profiled program runs 2.5x faster than non-profiled
GHC
ghc-devs at haskell.org
Thu Nov 2 19:36:26 UTC 2017
#14414: Profiled program runs 2.5x faster than non-profiled
-------------------------------------+-------------------------------------
Reporter: Fuuzetsu | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
I was looking at benchmarks game (attached as fasta.ghc-2.hs). I have
found that with the flags give there, this program on GHC 8.2.1 runs in
about a second with `-prof -fprof-auto` and 2.5 seconds without!
To run without profiling:
{{{
ghc --make -Wall -fforce-recomp -fllvm -O2 -XBangPatterns -threaded
-rtsopts -XOverloadedStrings fasta.ghc-2.hs -o fasta.ghc-2.ghc_run &&
./fasta.ghc-2.ghc_run +RTS -N4 -s -RTS 250000 > /dev/null
}}}
Same program with profiling
{{{
ghc --make -fforce-recomp -fllvm -prof -fprof-auto -O2 -XBangPatterns
-threaded -rtsopts -XOverloadedStrings fasta.ghc-2.hs -o
fasta.ghc-2.ghc_run && ./fasta.ghc-2.ghc_run +RTS -N4 -p -s -RTS 250000 >
/dev/null
}}}
I also attach Core outputs for both profiled and unprofiled version.
To me this seems very strange: profiled version is somehow faster. Perhaps
what's worse is that this means that there's some optimisation GHC is
performing when profiling is not on that makes the program a lot slower
than it could be!
This program is not minimised.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14414>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list