Replace JIT total time histogram with total time counter
We don't report histograms, so let's get the total time as a
proxy to measure JIT activity.
Test: gtest
Bug: 170149255
Change-Id: I76911f5e7f93f00dc9f133e7f89a1045b31dedc7
diff --git a/compiler/jit/jit_compiler.cc b/compiler/jit/jit_compiler.cc
index c5095cf..f819cd8 100644
--- a/compiler/jit/jit_compiler.cc
+++ b/compiler/jit/jit_compiler.cc
@@ -188,7 +188,7 @@
: "Compiling baseline",
&logger);
JitCodeCache* const code_cache = runtime->GetJit()->GetCodeCache();
- metrics::AutoTimer timer{runtime->GetMetrics()->JitMethodCompileTime()};
+ metrics::AutoTimer timer{runtime->GetMetrics()->JitMethodCompileTotalTime()};
success = compiler_->JitCompile(
self, code_cache, region, method, compilation_kind, jit_logger_.get());
uint64_t duration_us = timer.Stop();
diff --git a/libartbase/base/metrics/metrics.h b/libartbase/base/metrics/metrics.h
index 2a71c2c..17fb0d8 100644
--- a/libartbase/base/metrics/metrics.h
+++ b/libartbase/base/metrics/metrics.h
@@ -48,7 +48,7 @@
METRIC(FullGcThroughputAvg, MetricsAverage) \
METRIC(YoungGcTracingThroughputAvg, MetricsAverage) \
METRIC(FullGcTracingThroughputAvg, MetricsAverage) \
- METRIC(JitMethodCompileTime, MetricsHistogram, 15, 0, 1'000'000) \
+ METRIC(JitMethodCompileTotalTime, MetricsCounter) \
METRIC(JitMethodCompileCount, MetricsCounter) \
METRIC(YoungGcCollectionTime, MetricsHistogram, 15, 0, 60'000) \
METRIC(FullGcCollectionTime, MetricsHistogram, 15, 0, 60'000) \
diff --git a/libartbase/base/metrics/metrics_test.cc b/libartbase/base/metrics/metrics_test.cc
index e7882ec..ed6f88d 100644
--- a/libartbase/base/metrics/metrics_test.cc
+++ b/libartbase/base/metrics/metrics_test.cc
@@ -135,7 +135,7 @@
}
TEST_F(MetricsTest, SimpleHistogramTest) {
- MetricsHistogram<DatumId::kJitMethodCompileTime, 5, 0, 100> histogram;
+ MetricsHistogram<DatumId::kYoungGcCollectionTime, 5, 0, 100> histogram;
// bucket 0: 0-19
histogram.Add(10);
@@ -168,7 +168,7 @@
// Make sure values added outside the range of the histogram go into the first or last bucket.
TEST_F(MetricsTest, HistogramOutOfRangeTest) {
- MetricsHistogram<DatumId::kJitMethodCompileTime, 2, 0, 100> histogram;
+ MetricsHistogram<DatumId::kYoungGcCollectionTime, 2, 0, 100> histogram;
// bucket 0: 0-49
histogram.Add(-500);
@@ -190,7 +190,7 @@
static constexpr uint64_t verification_time = 42;
metrics.ClassVerificationTotalTime()->Add(verification_time);
// Add a negative value so we are guaranteed that it lands in the first bucket.
- metrics.JitMethodCompileTime()->Add(-5);
+ metrics.YoungGcCollectionTime()->Add(-5);
// Report and check the data
class TestBackend : public TestBackendBase {
@@ -213,7 +213,7 @@
int64_t,
int64_t,
const std::vector<uint32_t>& buckets) override {
- if (histogram_type == DatumId::kJitMethodCompileTime) {
+ if (histogram_type == DatumId::kYoungGcCollectionTime) {
EXPECT_EQ(buckets[0], 1u);
for (size_t i = 1; i < buckets.size(); ++i) {
EXPECT_EQ(buckets[i], 0u);
@@ -235,7 +235,7 @@
}
TEST_F(MetricsTest, HistogramTimer) {
- MetricsHistogram<DatumId::kJitMethodCompileTime, 1, 0, 100> test_histogram;
+ MetricsHistogram<DatumId::kYoungGcCollectionTime, 1, 0, 100> test_histogram;
{
AutoTimer timer{&test_histogram};
// Sleep for 2µs so the counter will be greater than 0.
diff --git a/runtime/metrics/statsd.cc b/runtime/metrics/statsd.cc
index b92fd83..bcf1a14 100644
--- a/runtime/metrics/statsd.cc
+++ b/runtime/metrics/statsd.cc
@@ -44,9 +44,9 @@
case DatumId::kClassVerificationTotalTime:
return std::make_optional(
statsd::ART_DATUM_REPORTED__KIND__ART_DATUM_CLASS_VERIFICATION_TIME_COUNTER_MICROS);
- case DatumId::kJitMethodCompileTime:
+ case DatumId::kJitMethodCompileTotalTime:
return std::make_optional(
- statsd::ART_DATUM_REPORTED__KIND__ART_DATUM_JIT_METHOD_COMPILE_TIME_HISTO_MICROS);
+ statsd::ART_DATUM_REPORTED__KIND__ART_DATUM_JIT_METHOD_COMPILE_TIME_MICROS);
case DatumId::kClassLoadingTotalTime:
return std::make_optional(
statsd::ART_DATUM_REPORTED__KIND__ART_DATUM_CLASS_LOADING_TIME_COUNTER_MICROS);