diff options
author | Daniel Sandler <dsandler@android.com> | 2013-06-26 01:39:02 -0400 |
---|---|---|
committer | Daniel Sandler <dsandler@android.com> | 2013-06-26 14:30:19 -0400 |
commit | 8540bb8d72496dca3182ac091c2cafaaad597457 (patch) | |
tree | 1e366e439b3ca86c1c0c535f7ef1d455b871a07d /src/com/android/launcher3/MemoryTracker.java | |
parent | 566da1026c33a68157bf9caf93d2071ad2870f46 (diff) | |
download | android_packages_apps_Trebuchet-8540bb8d72496dca3182ac091c2cafaaad597457.tar.gz android_packages_apps_Trebuchet-8540bb8d72496dca3182ac091c2cafaaad597457.tar.bz2 android_packages_apps_Trebuchet-8540bb8d72496dca3182ac091c2cafaaad597457.zip |
Include all processes in hprof dumps.
The emailed file is now a zipfile containing one .ahprof
file for each process known to MemoryTracker.
Change-Id: If4a73df9afd38756cc01ff37b2d249346e5f7e9f
Diffstat (limited to 'src/com/android/launcher3/MemoryTracker.java')
-rw-r--r-- | src/com/android/launcher3/MemoryTracker.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/com/android/launcher3/MemoryTracker.java b/src/com/android/launcher3/MemoryTracker.java index c1057a8df..395bf9ef0 100644 --- a/src/com/android/launcher3/MemoryTracker.java +++ b/src/com/android/launcher3/MemoryTracker.java @@ -40,6 +40,7 @@ public class MemoryTracker extends Service { public static class ProcessMemInfo { public int pid; public String name; + public long startTime; public long currentPss, currentUss; public long[] pss = new long[256]; public long[] uss = new long[256]; @@ -49,6 +50,10 @@ public class MemoryTracker extends Service { public ProcessMemInfo(int pid, String name) { this.pid = pid; this.name = name; + this.startTime = System.currentTimeMillis(); + } + public long getUptime() { + return System.currentTimeMillis() - startTime; } }; public final LongSparseArray<ProcessMemInfo> mData = new LongSparseArray<ProcessMemInfo>(); @@ -77,6 +82,14 @@ public class MemoryTracker extends Service { ActivityManager mAm; + public static void startTrackingMe(Context context, String name) { + context.startService(new Intent(context, MemoryTracker.class) + .setAction(MemoryTracker.ACTION_START_TRACKING) + .putExtra("pid", android.os.Process.myPid()) + .putExtra("name", name) + ); + } + public ProcessMemInfo getMemInfo(int pid) { return mData.get(pid); } @@ -86,7 +99,11 @@ public class MemoryTracker extends Service { } public void startTrackingProcess(int pid, String name) { - mPids.add(new Long(pid)); + final Long lpid = new Long(pid); + + if (mPids.contains(lpid)) return; + + mPids.add(lpid); final int N = mPids.size(); mPidsArray = new int[N]; StringBuffer sb = new StringBuffer("Now tracking processes: "); @@ -110,7 +127,7 @@ public class MemoryTracker extends Service { info.uss[info.head] = info.currentUss = dinfo.getTotalPrivateDirty(); if (info.currentPss > info.max) info.max = info.currentPss; if (info.currentUss > info.max) info.max = info.currentUss; - //Log.v(TAG, "update: pid " + pid + " pss=" + info.currentPss + " uss=" + info.currentUss); + Log.v(TAG, "update: pid " + pid + " pss=" + info.currentPss + " uss=" + info.currentUss); } // XXX: notify listeners |