[GHC] #7429: Unexplained performance boost with +RTS -h
GHC
cvs-ghc at haskell.org
Wed Nov 21 10:46:05 CET 2012
#7429: Unexplained performance boost with +RTS -h
--------------------------------------+-------------------------------------
Reporter: simonmar | Owner:
Type: bug | Status: closed
Priority: normal | Milestone: 7.8.1
Component: Compiler | Version: 7.6.1
Resolution: wontfix | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: Runtime performance bug | Difficulty: Unknown
Testcase: | Blockedby:
Blocking: | Related:
--------------------------------------+-------------------------------------
Changes (by simonmar):
* status: new => closed
* resolution: => wontfix
Comment:
Aha - of course I was forgetting something, the GC will also eliminate the
indirections, and that seems to explain the difference at least in
`Main2.hs`.
In the original version, the data structure with the indirections is
enough to push it over the size of the L1 cache, so all the misses are
capacity misses (on my machine anyway). In `Main2.hs`, the difference is
all due to having to traverse the extra indirections in the data
structure.
Mystery solved - and I don't think there's anything we can do here. If it
is important to make this case go fast, you might try to rewrite the
program so that it creates the data structure strictly, which will
eliminate the indirections at creation time.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7429#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list