[GHC] #7662: Improve GC of mutable objects

GHC cvs-ghc at haskell.org
Tue Feb 12 09:58:46 CET 2013


#7662: Improve GC of mutable objects
---------------------------------+------------------------------------------
    Reporter:  ezyang            |       Owner:                  
        Type:  feature request   |      Status:  new             
    Priority:  normal            |   Milestone:  _|_             
   Component:  Runtime System    |     Version:  7.7             
    Keywords:                    |          Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |     Failure:  None/Unknown    
  Difficulty:  Unknown           |    Testcase:                  
   Blockedby:                    |    Blocking:                  
     Related:                    |  
---------------------------------+------------------------------------------

Comment(by simonmar):

 I wanted to record an idea that occurred to me: if we were to switch to a
 mark/sweep (probably mark-region, e.g. Immix) collection for the old
 generation, which is something I've been wanting to try for some time,
 then it gives us a way to do card marking.  The idea is to retain the
 bitmap after GC, and use it to find the live objects when sweeping a
 marked card.  The bitmap costs ~3% extra heap size on a 32-bit machine,
 half that on 64-bits.

 I'm quite optimistic that mark-region would be a win, and furthermore,
 because mark/sweep is non-destructive, it could be done incrementally, or
 concurrently with the mutator (you have to be careful about mutation, but
 the write-barrier techniques for doing this are well known).  The idea is
 that going incremental or concurrent would improve pause times.

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



More information about the ghc-tickets mailing list