OSDN Git Service

Add soft reference pre processing.
authorMathieu Chartier <mathieuc@google.com>
Thu, 20 Mar 2014 00:08:17 +0000 (17:08 -0700)
committerMathieu Chartier <mathieuc@google.com>
Thu, 20 Mar 2014 16:17:02 +0000 (09:17 -0700)
commit1ad2784ad9f311ebf9fe0677d33818648f423f9c
tree3dbc930a653615e074cc4965ded9e0cc6ed07a45
parent66e4c3e96dccdec7423d673ad6bbf7821a776651
Add soft reference pre processing.

Soft reference pre-processing does soft reference preservation with
mutators running. After this is done, it does another pass with
mutators paused in the ProcessReference code. This helps lower pauses
since most preserved soft references have their referents recursive
marked outside the pause.

Changed ergonomics to have non sticky collectors always clear the
soft references.

Maps pauses ~10ms -> ~3ms on Nexus 4.

Bug: 13421927

Change-Id: I1370f7bb6934034869aa5afca0c377876267aa8e
runtime/gc/collector/mark_sweep.cc
runtime/gc/collector/mark_sweep.h
runtime/gc/heap.cc
runtime/gc/heap.h