Loading services/java/com/android/server/am/ActivityManagerService.java +20 −1 Original line number Diff line number Diff line Loading @@ -11948,6 +11948,7 @@ public final class ActivityManagerService extends ActivityManagerNative boolean oomOnly = false; boolean isCompact = false; boolean localOnly = false; boolean showFreeFormula2 = false; int opti = 0; while (opti < args.length) { Loading @@ -11962,6 +11963,8 @@ public final class ActivityManagerService extends ActivityManagerNative dumpDalvik = true; } else if ("-d".equals(opt)) { dumpDalvik = true; } else if ("-f".equals(opt)) { showFreeFormula2 = true; } else if ("-c".equals(opt)) { isCompact = true; } else if ("--oom".equals(opt)) { Loading @@ -11971,6 +11974,7 @@ public final class ActivityManagerService extends ActivityManagerNative } else if ("-h".equals(opt)) { pw.println("meminfo dump options: [-a] [-d] [-c] [--oom] [process]"); pw.println(" -a: include all available information for each process."); pw.println(" -f: include alternative memory free estimate."); pw.println(" -d: include dalvik details when dumping process details."); pw.println(" -c: dump in a compact machine-parseable representation."); pw.println(" --oom: only show processes organized by oom adj."); Loading Loading @@ -12063,6 +12067,8 @@ public final class ActivityManagerService extends ActivityManagerNative long totalPss = 0; long cachedPss = 0; long cachedPrivateDirty = 0; long cachedPrivateClean = 0; Debug.MemoryInfo mi = null; for (int i = procs.size() - 1 ; i >= 0 ; i--) { Loading @@ -12084,7 +12090,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (mi == null) { mi = new Debug.MemoryInfo(); } if (dumpDetails || (!brief && !oomOnly)) { if (dumpDetails || (!brief && !oomOnly) || showFreeFormula2) { Debug.getMemoryInfo(pid, mi); } else { mi.dalvikPss = (int)Debug.getPss(pid, tmpLong); Loading Loading @@ -12113,6 +12119,8 @@ public final class ActivityManagerService extends ActivityManagerNative final long myTotalPss = mi.getTotalPss(); final long myTotalUss = mi.getTotalUss(); final long myTotalPrivateDirty = mi.getTotalPrivateDirty(); final long myTotalPrivateClean = mi.getTotalPrivateClean(); synchronized (this) { if (r.thread != null && oomAdj == r.getSetAdjWithServices()) { Loading Loading @@ -12140,6 +12148,8 @@ public final class ActivityManagerService extends ActivityManagerNative if (oomAdj >= ProcessList.CACHED_APP_MIN_ADJ) { cachedPss += myTotalPss; cachedPrivateDirty += myTotalPrivateDirty; cachedPrivateClean += myTotalPrivateClean; } for (int oomIndex=0; oomIndex<oomPss.length; oomIndex++) { Loading Loading @@ -12254,6 +12264,15 @@ public final class ActivityManagerService extends ActivityManagerNative pw.print(cachedPss); pw.print(" cached pss + "); pw.print(memInfo.getCachedSizeKb()); pw.print(" cached + "); pw.print(memInfo.getFreeSizeKb()); pw.println(" free)"); if (showFreeFormula2) { pw.print(" Free RAM v2: "); pw.print(cachedPrivateDirty + cachedPrivateClean + memInfo.getCachedSizeKb() + memInfo.getFreeSizeKb()); pw.print(" kB ("); pw.print(cachedPrivateDirty); pw.print(" cached private dirty + "); pw.print(cachedPrivateClean); pw.print(" cached private clean + "); pw.print(memInfo.getCachedSizeKb()); pw.print(" cached + "); pw.print(memInfo.getFreeSizeKb()); pw.println(" free)"); } } else { pw.print("ram,"); pw.print(memInfo.getTotalSizeKb()); pw.print(","); pw.print(cachedPss + memInfo.getCachedSizeKb() Loading Loading
services/java/com/android/server/am/ActivityManagerService.java +20 −1 Original line number Diff line number Diff line Loading @@ -11948,6 +11948,7 @@ public final class ActivityManagerService extends ActivityManagerNative boolean oomOnly = false; boolean isCompact = false; boolean localOnly = false; boolean showFreeFormula2 = false; int opti = 0; while (opti < args.length) { Loading @@ -11962,6 +11963,8 @@ public final class ActivityManagerService extends ActivityManagerNative dumpDalvik = true; } else if ("-d".equals(opt)) { dumpDalvik = true; } else if ("-f".equals(opt)) { showFreeFormula2 = true; } else if ("-c".equals(opt)) { isCompact = true; } else if ("--oom".equals(opt)) { Loading @@ -11971,6 +11974,7 @@ public final class ActivityManagerService extends ActivityManagerNative } else if ("-h".equals(opt)) { pw.println("meminfo dump options: [-a] [-d] [-c] [--oom] [process]"); pw.println(" -a: include all available information for each process."); pw.println(" -f: include alternative memory free estimate."); pw.println(" -d: include dalvik details when dumping process details."); pw.println(" -c: dump in a compact machine-parseable representation."); pw.println(" --oom: only show processes organized by oom adj."); Loading Loading @@ -12063,6 +12067,8 @@ public final class ActivityManagerService extends ActivityManagerNative long totalPss = 0; long cachedPss = 0; long cachedPrivateDirty = 0; long cachedPrivateClean = 0; Debug.MemoryInfo mi = null; for (int i = procs.size() - 1 ; i >= 0 ; i--) { Loading @@ -12084,7 +12090,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (mi == null) { mi = new Debug.MemoryInfo(); } if (dumpDetails || (!brief && !oomOnly)) { if (dumpDetails || (!brief && !oomOnly) || showFreeFormula2) { Debug.getMemoryInfo(pid, mi); } else { mi.dalvikPss = (int)Debug.getPss(pid, tmpLong); Loading Loading @@ -12113,6 +12119,8 @@ public final class ActivityManagerService extends ActivityManagerNative final long myTotalPss = mi.getTotalPss(); final long myTotalUss = mi.getTotalUss(); final long myTotalPrivateDirty = mi.getTotalPrivateDirty(); final long myTotalPrivateClean = mi.getTotalPrivateClean(); synchronized (this) { if (r.thread != null && oomAdj == r.getSetAdjWithServices()) { Loading Loading @@ -12140,6 +12148,8 @@ public final class ActivityManagerService extends ActivityManagerNative if (oomAdj >= ProcessList.CACHED_APP_MIN_ADJ) { cachedPss += myTotalPss; cachedPrivateDirty += myTotalPrivateDirty; cachedPrivateClean += myTotalPrivateClean; } for (int oomIndex=0; oomIndex<oomPss.length; oomIndex++) { Loading Loading @@ -12254,6 +12264,15 @@ public final class ActivityManagerService extends ActivityManagerNative pw.print(cachedPss); pw.print(" cached pss + "); pw.print(memInfo.getCachedSizeKb()); pw.print(" cached + "); pw.print(memInfo.getFreeSizeKb()); pw.println(" free)"); if (showFreeFormula2) { pw.print(" Free RAM v2: "); pw.print(cachedPrivateDirty + cachedPrivateClean + memInfo.getCachedSizeKb() + memInfo.getFreeSizeKb()); pw.print(" kB ("); pw.print(cachedPrivateDirty); pw.print(" cached private dirty + "); pw.print(cachedPrivateClean); pw.print(" cached private clean + "); pw.print(memInfo.getCachedSizeKb()); pw.print(" cached + "); pw.print(memInfo.getFreeSizeKb()); pw.println(" free)"); } } else { pw.print("ram,"); pw.print(memInfo.getTotalSizeKb()); pw.print(","); pw.print(cachedPss + memInfo.getCachedSizeKb() Loading