Change sticky GC ergonomics to use GC throughput.
The old sticky ergonomics used partial/full GC when the bytes until
the footprint limit was < min free. This was suboptimal. The new
sticky GC ergonomics do partial/full GC when the throughput
of the current sticky GC iteration is <= mean throughput of the
partial/full GC.
Total GC time on FormulaEvaluationActions.EvaluateAndApplyChanges.
Before: 26.4s
After: 24.8s
No benchmark score change measured.
Bug: 8788501
Change-Id: I90000305e93fd492a8ef5a06ec9620d830eaf90d
diff --git a/runtime/verify_object-inl.h b/runtime/verify_object-inl.h
index e211c83..39df375 100644
--- a/runtime/verify_object-inl.h
+++ b/runtime/verify_object-inl.h
@@ -36,9 +36,8 @@
bool failed = !IsAligned<kObjectAlignment>(obj);
if (!failed) {
mirror::Class* c = obj->GetClass<kVerifyNone>();
- failed = failed || c == nullptr;
- failed = failed ||!IsAligned<kObjectAlignment>(c);
- failed = failed ||!VerifyClassClass(c);
+ failed = failed || !IsAligned<kObjectAlignment>(c);
+ failed = failed || !VerifyClassClass(c);
}
if (UNLIKELY(failed)) {
Runtime::Current()->GetHeap()->VerifyObjectBody(obj);