Add more -d dalvik details to dumpsys
Added .NonMoving for the non moving space.
Added .Zygote for the zygote.
Added .IndirectRef for indirect reference tables (jobjects).
Example:
Dalvik Details
.Heap 2264 2264 0 0
.LOS 80 80 0 0
.GC 144 144 0 0
.Zygote 331 196 0 2428
.NonMoving 540 540 0 0
.IndirectRef 20 20 0 0
Bug: 18672069
Change-Id: Id14e5bc92ceb15fe7a17d9fb035f18aa2925e50c
diff --git a/core/jni/android_os_Debug.cpp b/core/jni/android_os_Debug.cpp
index e572d22..91daee8 100644
--- a/core/jni/android_os_Debug.cpp
+++ b/core/jni/android_os_Debug.cpp
@@ -70,6 +70,9 @@
HEAP_DALVIK_LINEARALLOC,
HEAP_DALVIK_ACCOUNTING,
HEAP_DALVIK_CODE_CACHE,
+ HEAP_DALVIK_ZYGOTE,
+ HEAP_DALVIK_NON_MOVING,
+ HEAP_DALVIK_INDIRECT_REFERENCE_TABLE,
_NUM_HEAP,
_NUM_EXCLUSIVE_HEAP = HEAP_OTHER_MEMTRACK+1,
@@ -274,15 +277,21 @@
if (strstr(name, "/dev/ashmem/dalvik-LinearAlloc") == name) {
subHeap = HEAP_DALVIK_LINEARALLOC;
} else if ((strstr(name, "/dev/ashmem/dalvik-alloc space") == name) ||
- (strstr(name, "/dev/ashmem/dalvik-main space") == name) ||
- (strstr(name, "/dev/ashmem/dalvik-zygote space") == name) ||
- (strstr(name, "/dev/ashmem/dalvik-non moving space") == name)) {
+ (strstr(name, "/dev/ashmem/dalvik-main space") == name)) {
// This is the regular Dalvik heap.
whichHeap = HEAP_DALVIK;
subHeap = HEAP_DALVIK_NORMAL;
} else if (strstr(name, "/dev/ashmem/dalvik-large object space") == name) {
whichHeap = HEAP_DALVIK;
subHeap = HEAP_DALVIK_LARGE;
+ } else if (strstr(name, "/dev/ashmem/dalvik-non moving space") == name) {
+ whichHeap = HEAP_DALVIK;
+ subHeap = HEAP_DALVIK_NON_MOVING;
+ } else if (strstr(name, "/dev/ashmem/dalvik-zygote space") == name) {
+ whichHeap = HEAP_DALVIK;
+ subHeap = HEAP_DALVIK_ZYGOTE;
+ } else if (strstr(name, "/dev/ashmem/dalvik-indirect ref") == name) {
+ subHeap = HEAP_DALVIK_INDIRECT_REFERENCE_TABLE;
} else if (strstr(name, "/dev/ashmem/dalvik-jit-code-cache") == name) {
subHeap = HEAP_DALVIK_CODE_CACHE;
} else {