Call Debug.getPss without a lock held am: 10e8f16add am: f10d31f5d0
am: 65fdd196fa
Change-Id: Ic41194d60d8919d69123bd40082c86b2a1e22571
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user