OSDN Git Service

Fix non concurrent mark sweep ergonomics.
authorMathieu Chartier <mathieuc@google.com>
Fri, 28 Mar 2014 23:22:20 +0000 (16:22 -0700)
committerMathieu Chartier <mathieuc@google.com>
Fri, 28 Mar 2014 23:24:55 +0000 (16:24 -0700)
commit5ae2c9335a0c4eeaf4c67a52d066f16aad1aa907
treef3d6a0d2a5e67ac5bcfe984f196465078ba9d7a5
parent17b3fb82db845bae4713ca9cbe2f0c9a2dd2abc2
Fix non concurrent mark sweep ergonomics.

Previously we would continue to do sticky GC until the sticky GC did
not free enough memory for the allocation, this was excessive since it
could do one sticky GC per allocation. The new logic uses the next GC
type before trying all the GCs in the plan.

Before memalloc benchmark (non concurrent mark sweep):
Total time spent in GC: 11.212701s
Score: 7790

After:
Total time spent in GC: 9.422676s
Score: 6870

Change-Id: Iba75b70ea825ef3fd4b3e064d4f12c2fe5a3b176
runtime/gc/heap.cc