• mlippautz's avatar
    [heap] Use HashMap as scratchpad backing store · 55422bdd
    mlippautz authored
    We use a scratchpad to remember visited allocation sites for post processing
    (making tenure decisions). The previous implementation used a rooted FixedArray
    with constant length (256) to remember all sites. Updating the scratchpad is a
    bottleneck in any parallel/concurrent implementation of newspace evacuation.
    
    The new implementation uses a HashMap with allocation sites as keys and
    temporary counts as values. During evacuation we collect a local hashmap of
    visited allocation sites. Upon merging the local hashmap back into a global one
    we update potential forward pointers of compacted allocation sites.  The
    scavenger can directly enter its entries into the global hashmap. Note that the
    actual memento found count is still kept on the AllocationSite as it needs to
    survive scavenges and full GCs.
    
    BUG=chromium:524425
    LOG=N
    R=hpayer@chromium.org
    
    Review URL: https://codereview.chromium.org/1535723002
    
    Cr-Commit-Position: refs/heads/master@{#33233}
    55422bdd
heap.h 110 KB