Call Debug.getPss without a lock held am: 10e8f16add am: f10d31f5d0

am: 65fdd196fa

Change-Id: Ic41194d60d8919d69123bd40082c86b2a1e22571
This commit is contained in:
Amith Yamasani
2016-09-01 01:33:19 +00:00
committed by android-build-merger
2 changed files with 46 additions and 26 deletions

View File

@@ -39,6 +39,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.StringTokenizer;
public class ProcessCpuTracker {
@@ -177,6 +178,11 @@ public class ProcessCpuTracker {
private byte[] mBuffer = new byte[4096];
public interface FilterStats {
/** Which stats to pick when filtering */
boolean needed(Stats stats);
}
public static class Stats {
public final int pid;
public final int uid;
@@ -695,6 +701,18 @@ public class ProcessCpuTracker {
return mProcStats.get(index);
}
final public List<Stats> getStats(FilterStats filter) {
final ArrayList<Stats> statses = new ArrayList<>(mProcStats.size());
final int N = mProcStats.size();
for (int p = 0; p < N; p++) {
Stats stats = mProcStats.get(p);
if (filter.needed(stats)) {
statses.add(stats);
}
}
return statses;
}
final public int countWorkingStats() {
buildWorkingProcs();
return mWorkingProcs.size();