[GHC] #7850: Strangely high memory usage on optimized Ackermann function

GHC cvs-ghc at haskell.org
Wed Apr 24 16:10:10 CEST 2013


#7850: Strangely high memory usage on optimized Ackermann function
---------------------------------+------------------------------------------
    Reporter:  dolio             |       Owner:                         
        Type:  bug               |      Status:  new                    
    Priority:  normal            |   Milestone:                         
   Component:  Compiler          |     Version:  7.6.2                  
    Keywords:                    |          Os:  Unknown/Multiple       
Architecture:  Unknown/Multiple  |     Failure:  Runtime performance bug
  Difficulty:  Unknown           |    Testcase:                         
   Blockedby:                    |    Blocking:                         
     Related:                    |  
---------------------------------+------------------------------------------

Comment(by dolio):

 I can't speak for anyone else, but performance here (Linux, 64-bit) is
 much better with 1M stack chunks as well.

 Also, with the program I posted recently... It finishes very shortly after
 running into my swap with the given parameters. With depth=4050, it takes
 a little over 5 seconds. With depth=4051, it takes a little over 5
 seconds. With depth=4052, it takes around 26 seconds. And this is still
 true on HEAD.

 Anyhow, the difference is that 4052 has to allocate a second stack chunk
 on each iteration, and then toss it away almost immediately. This activity
 dramatically slows down the program. -kc1M makes the same difference for
 the ackermann example. I wouldn't be surprised if OCaml doesn't have to do
 any similar fooling on this example (due to a larger initial stack), which
 is why it would perform comparably to C by default.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7850#comment:27>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the ghc-tickets mailing list