mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
48 lines
1.6 KiB
C++
48 lines
1.6 KiB
C++
|
// 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
|