diff options
| -rw-r--r-- | libartbase/base/metrics/metrics.h | 4 | ||||
| -rw-r--r-- | runtime/native/dalvik_system_VMRuntime.cc | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/libartbase/base/metrics/metrics.h b/libartbase/base/metrics/metrics.h index d2ecd4d751..0fe090fdbc 100644 --- a/libartbase/base/metrics/metrics.h +++ b/libartbase/base/metrics/metrics.h @@ -31,6 +31,7 @@ #include "base/bit_utils.h" #include "base/macros.h" #include "base/time_utils.h" +#include "jni.h" #include "tinyxml2.h" #pragma clang diagnostic push @@ -107,6 +108,8 @@ namespace art { class Runtime; struct RuntimeArgumentMap; +[[maybe_unused]] static jlong VMRuntime_getFullGcCount(JNIEnv* env, jclass klass); + namespace metrics { template <typename value_t> class MetricsBase; @@ -340,6 +343,7 @@ class MetricsCounter : public MetricsBase<T> { static_assert(std::atomic<value_t>::is_always_lock_free); friend class ArtMetrics; + friend jlong art::VMRuntime_getFullGcCount(JNIEnv* env, jclass klass); }; template <DatumId datum_id, typename T = uint64_t> diff --git a/runtime/native/dalvik_system_VMRuntime.cc b/runtime/native/dalvik_system_VMRuntime.cc index 1b7ed5cc08..0e9660aaac 100644 --- a/runtime/native/dalvik_system_VMRuntime.cc +++ b/runtime/native/dalvik_system_VMRuntime.cc @@ -536,6 +536,11 @@ static jobject VMRuntime_getBaseApkOptimizationInfo(JNIEnv* env, [[maybe_unused] return env->NewObject(cls.get(), ctor, j_compiler_filter.get(), j_compilation_reason.get()); } +static jlong VMRuntime_getFullGcCount([[maybe_unused]] JNIEnv* env, [[maybe_unused]] jclass klass) { + metrics::ArtMetrics* metrics = GetMetrics(); + return metrics->FullGcCount()->Value(); +} + static JNINativeMethod gMethods[] = { FAST_NATIVE_METHOD(VMRuntime, addressOf, "(Ljava/lang/Object;)J"), NATIVE_METHOD(VMRuntime, bootClassPath, "()Ljava/lang/String;"), @@ -587,6 +592,7 @@ static JNINativeMethod gMethods[] = { NATIVE_METHOD(VMRuntime, isValidClassLoaderContext, "(Ljava/lang/String;)Z"), NATIVE_METHOD(VMRuntime, getBaseApkOptimizationInfo, "()Ldalvik/system/DexFile$OptimizationInfo;"), + NATIVE_METHOD(VMRuntime, getFullGcCount, "()J"), }; void register_dalvik_system_VMRuntime(JNIEnv* env) { |