• Mathieu Chartier's avatar
    Refactor and improve GC root handling · bb87e0f1
    Mathieu Chartier authored
    Changed GcRoot to use compressed references. Changed root visiting to
    use virtual functions instead of function pointers. Changed root visting
    interface to be an array of roots instead of a single root at a time.
    Added buffered root marking helper to avoid dispatch overhead.
    
    Root marking seems a bit faster on EvaluateAndApplyChanges due to batch
    marking. Pause times unaffected.
    
    Mips64 is untested but might work, maybe.
    
    Before:
    MarkConcurrentRoots: Sum: 67.678ms 99% C.I. 2us-664.999us Avg: 161.138us Max: 671us
    
    After:
    MarkConcurrentRoots: Sum: 54.806ms 99% C.I. 2us-499.986us Avg: 136.333us Max: 602us
    
    Bug: 19264997
    
    Change-Id: I0a71ebb5928f205b9b3f7945b25db6489d5657ca
    bb87e0f1
java_vm_ext.cc 26.8 KB