#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

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to