diff options
author | 2014-04-16 09:48:48 -0700 | |
---|---|---|
committer | 2014-04-17 19:01:34 -0700 | |
commit | bbd695c71e0bf518f582e84524e1cdeb3de3896c (patch) | |
tree | 6fe6a128b629abc6a396a192b2e8da1180afeded /runtime/mirror/object-inl.h | |
parent | a092ee404ababbf8fc945111dc4a571284c9f02f (diff) |
Replace ObjectSet with LargeObjectBitmap.
Speeds up large object marking since large objects no longer required
a lock. Changed the GCs to use the heap bitmap for marking objects
which aren't in the fast path. This eliminates the need for a
MarkLargeObject function.
Maps before (10 GC iterations):
Mean partial time: 180ms
Mean sticky time: 151ms
Maps after:
Mean partial time: 161ms
Mean sticky time: 101ms
Note: the GC durations are long due to recent ergonomic changes and
because the fast bulk free hasn't yet been enabled. Over 50% of the
GC time is spent in RosAllocSpace::FreeList.
Bug: 13571028
Change-Id: Id8f94718aeaa13052672ccbae1e8edf77d653f62
Diffstat (limited to 'runtime/mirror/object-inl.h')
-rw-r--r-- | runtime/mirror/object-inl.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/runtime/mirror/object-inl.h b/runtime/mirror/object-inl.h index 2505855831..b195dea57e 100644 --- a/runtime/mirror/object-inl.h +++ b/runtime/mirror/object-inl.h @@ -51,14 +51,14 @@ inline void Object::SetClass(Class* new_klass) { OFFSET_OF_OBJECT_MEMBER(Object, klass_), new_klass, false); } -inline LockWord Object::GetLockWord(bool is_volatile) { - return LockWord(GetField32(OFFSET_OF_OBJECT_MEMBER(Object, monitor_), is_volatile)); +inline LockWord Object::GetLockWord(bool as_volatile) { + return LockWord(GetField32(OFFSET_OF_OBJECT_MEMBER(Object, monitor_), as_volatile)); } -inline void Object::SetLockWord(LockWord new_val, bool is_volatile) { +inline void Object::SetLockWord(LockWord new_val, bool as_volatile) { // Force use of non-transactional mode and do not check. SetField32<false, false>(OFFSET_OF_OBJECT_MEMBER(Object, monitor_), new_val.GetValue(), - is_volatile); + as_volatile); } inline bool Object::CasLockWord(LockWord old_val, LockWord new_val) { |