diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-07-15 02:04:19 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-07-15 02:04:19 +0000 |
commit | c77edc5afa4dfa2afa74fd65c53e20b2a0cae3b2 (patch) | |
tree | 0f4d08540c8e5fa16bcd0c99cd413fe815560e4b /base/trace_event/java_heap_dump_provider_android.cc | |
parent | b4233fd961752b80d42ae68e8b42acfb3e99be57 (diff) | |
parent | 0d51dc717edd4d97116b47bc156e83b8fa193d3d (diff) | |
download | libchrome-android12-mainline-resolv-release.tar.gz |
Snap for 7550930 from 0d51dc717edd4d97116b47bc156e83b8fa193d3d to mainline-resolv-releaseandroid-mainline-12.0.0_r94android-mainline-12.0.0_r80android-mainline-12.0.0_r65android-mainline-12.0.0_r52android-mainline-12.0.0_r35android-mainline-12.0.0_r16android-mainline-12.0.0_r124android-mainline-12.0.0_r108android12-mainline-resolv-release
Change-Id: Iad3a6d62027423628ce57b38935084364a4de147
Diffstat (limited to 'base/trace_event/java_heap_dump_provider_android.cc')
-rw-r--r-- | base/trace_event/java_heap_dump_provider_android.cc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/base/trace_event/java_heap_dump_provider_android.cc b/base/trace_event/java_heap_dump_provider_android.cc new file mode 100644 index 0000000000..684f7301cf --- /dev/null +++ b/base/trace_event/java_heap_dump_provider_android.cc @@ -0,0 +1,47 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/trace_event/java_heap_dump_provider_android.h" + +#include "base/android/java_runtime.h" +#include "base/trace_event/process_memory_dump.h" + +namespace base { +namespace trace_event { + +// static +JavaHeapDumpProvider* JavaHeapDumpProvider::GetInstance() { + return Singleton<JavaHeapDumpProvider, + LeakySingletonTraits<JavaHeapDumpProvider>>::get(); +} + +JavaHeapDumpProvider::JavaHeapDumpProvider() { +} + +JavaHeapDumpProvider::~JavaHeapDumpProvider() { +} + +// Called at trace dump point time. Creates a snapshot with the memory counters +// for the current process. +bool JavaHeapDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, + ProcessMemoryDump* pmd) { + // These numbers come from java.lang.Runtime stats. + long total_heap_size = 0; + long free_heap_size = 0; + android::JavaRuntime::GetMemoryUsage(&total_heap_size, &free_heap_size); + + MemoryAllocatorDump* outer_dump = pmd->CreateAllocatorDump("java_heap"); + outer_dump->AddScalar(MemoryAllocatorDump::kNameSize, + MemoryAllocatorDump::kUnitsBytes, total_heap_size); + + MemoryAllocatorDump* inner_dump = + pmd->CreateAllocatorDump("java_heap/allocated_objects"); + inner_dump->AddScalar(MemoryAllocatorDump::kNameSize, + MemoryAllocatorDump::kUnitsBytes, + total_heap_size - free_heap_size); + return true; +} + +} // namespace trace_event +} // namespace base |