summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libartbase/base/metrics/metrics.h4
-rw-r--r--runtime/native/dalvik_system_VMRuntime.cc6
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) {