[GHC] #15642: Improve the worst case performance of weak pointers

GHC ghc-devs at haskell.org
Sun Sep 16 00:07:38 UTC 2018


#15642: Improve the worst case performance of weak pointers
-------------------------------------+-------------------------------------
        Reporter:  dfeuer            |                Owner:  (none)
            Type:  feature request   |               Status:  new
        Priority:  normal            |            Milestone:  8.8.1
       Component:  Runtime System    |              Version:  8.6.1-beta1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Runtime           |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by dfeuer):

 I realized two things today:

 1. We don't have to tag the info pointer (or deal with the possibility
 that it's tagged) in the mutator. We can instead tag all the pointers in
 the table at the beginning of collection and untag as we go.

 2. We should have enough bits, even for a large binary on a 32-bit system.
 Why? Because even a huge binary won't have billions of info tables except
 perhaps in a pathological case. So if we eventually need another bit, we
 can impose 8-byte alignment for the tables.

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


More information about the ghc-tickets mailing list