ART: add GC throughput measured in bytes per CPU time
Test: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.
Bug: 112187497
Change-Id: I85bd7a49655db760cc605d50b5d18765ef82953c
diff --git a/runtime/gc/collector/garbage_collector.cc b/runtime/gc/collector/garbage_collector.cc
index 0294db7..8477c9d 100644
--- a/runtime/gc/collector/garbage_collector.cc
+++ b/runtime/gc/collector/garbage_collector.cc
@@ -234,12 +234,15 @@
pause_histogram_.PrintConfidenceIntervals(os, 0.99, cumulative_data);
}
}
+ double cpu_seconds = NsToMs(GetTotalCpuTime()) / 1000.0;
os << GetName() << " total time: " << PrettyDuration(total_ns)
<< " mean time: " << PrettyDuration(total_ns / iterations) << "\n"
<< GetName() << " freed: " << freed_objects
<< " objects with total size " << PrettySize(freed_bytes) << "\n"
<< GetName() << " throughput: " << freed_objects / seconds << "/s / "
- << PrettySize(freed_bytes / seconds) << "/s\n";
+ << PrettySize(freed_bytes / seconds) << "/s"
+ << " per cpu-time: "
+ << PrettySize(freed_bytes / cpu_seconds) << "/s\n";
}
} // namespace collector