Further tweak to issue #issue #25371736: Don't include z-ram allocations in Android OS
Make sure the duration shown for z-ram is sane (the maximum of the other process durations of that app). Change-Id: I62c46b89f927b2c7c16f5c31f6910419b2bdd130
This commit is contained in:
@@ -201,17 +201,21 @@ public class ProcStatsData {
|
|||||||
for (int i = pkgEntries.size() - 1; i >= 0 && totalTime > 0; i--) {
|
for (int i = pkgEntries.size() - 1; i >= 0 && totalTime > 0; i--) {
|
||||||
ProcStatsPackageEntry entry = pkgEntries.get(i);
|
ProcStatsPackageEntry entry = pkgEntries.get(i);
|
||||||
long pkgRunTime = 0;
|
long pkgRunTime = 0;
|
||||||
|
long maxRunTime = 0;
|
||||||
for (int j = entry.mEntries.size() - 1; j >= 0; j--) {
|
for (int j = entry.mEntries.size() - 1; j >= 0; j--) {
|
||||||
ProcStatsEntry proc = entry.mEntries.get(j);
|
ProcStatsEntry proc = entry.mEntries.get(j);
|
||||||
pkgRunTime += proc.mRunDuration;
|
pkgRunTime += proc.mRunDuration;
|
||||||
|
if (proc.mRunDuration > maxRunTime) {
|
||||||
|
maxRunTime = proc.mRunDuration;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
long pkgZRam = (zramMem*pkgRunTime)/totalTime;
|
long pkgZRam = (zramMem*pkgRunTime)/totalTime;
|
||||||
if (pkgZRam > 0) {
|
if (pkgZRam > 0) {
|
||||||
zramMem -= pkgZRam;
|
zramMem -= pkgZRam;
|
||||||
totalTime -= pkgRunTime;
|
totalTime -= pkgRunTime;
|
||||||
ProcStatsEntry procEntry = new ProcStatsEntry(entry.mPackage, 0,
|
ProcStatsEntry procEntry = new ProcStatsEntry(entry.mPackage, 0,
|
||||||
mContext.getString(R.string.process_stats_os_zram), memTotalTime,
|
mContext.getString(R.string.process_stats_os_zram), maxRunTime,
|
||||||
pkgZRam);
|
pkgZRam, memTotalTime);
|
||||||
procEntry.evaluateTargetPackage(mPm, mStats, null, null, sEntryCompare, mUseUss);
|
procEntry.evaluateTargetPackage(mPm, mStats, null, null, sEntryCompare, mUseUss);
|
||||||
entry.addEntry(procEntry);
|
entry.addEntry(procEntry);
|
||||||
}
|
}
|
||||||
@@ -226,14 +230,14 @@ public class ProcStatsData {
|
|||||||
if (totalMem.sysMemNativeWeight > 0) {
|
if (totalMem.sysMemNativeWeight > 0) {
|
||||||
osEntry = new ProcStatsEntry(Utils.OS_PKG, 0,
|
osEntry = new ProcStatsEntry(Utils.OS_PKG, 0,
|
||||||
mContext.getString(R.string.process_stats_os_native), memTotalTime,
|
mContext.getString(R.string.process_stats_os_native), memTotalTime,
|
||||||
(long) (totalMem.sysMemNativeWeight / memTotalTime));
|
(long) (totalMem.sysMemNativeWeight / memTotalTime), memTotalTime);
|
||||||
osEntry.evaluateTargetPackage(mPm, mStats, bgTotals, runTotals, sEntryCompare, mUseUss);
|
osEntry.evaluateTargetPackage(mPm, mStats, bgTotals, runTotals, sEntryCompare, mUseUss);
|
||||||
osPkg.addEntry(osEntry);
|
osPkg.addEntry(osEntry);
|
||||||
}
|
}
|
||||||
if (totalMem.sysMemKernelWeight > 0) {
|
if (totalMem.sysMemKernelWeight > 0) {
|
||||||
osEntry = new ProcStatsEntry(Utils.OS_PKG, 0,
|
osEntry = new ProcStatsEntry(Utils.OS_PKG, 0,
|
||||||
mContext.getString(R.string.process_stats_os_kernel), memTotalTime,
|
mContext.getString(R.string.process_stats_os_kernel), memTotalTime,
|
||||||
(long) (totalMem.sysMemKernelWeight / memTotalTime));
|
(long) (totalMem.sysMemKernelWeight / memTotalTime), memTotalTime);
|
||||||
osEntry.evaluateTargetPackage(mPm, mStats, bgTotals, runTotals, sEntryCompare, mUseUss);
|
osEntry.evaluateTargetPackage(mPm, mStats, bgTotals, runTotals, sEntryCompare, mUseUss);
|
||||||
osPkg.addEntry(osEntry);
|
osPkg.addEntry(osEntry);
|
||||||
}
|
}
|
||||||
@@ -249,7 +253,7 @@ public class ProcStatsData {
|
|||||||
if (baseCacheRam > 0) {
|
if (baseCacheRam > 0) {
|
||||||
osEntry = new ProcStatsEntry(Utils.OS_PKG, 0,
|
osEntry = new ProcStatsEntry(Utils.OS_PKG, 0,
|
||||||
mContext.getString(R.string.process_stats_os_cache), memTotalTime,
|
mContext.getString(R.string.process_stats_os_cache), memTotalTime,
|
||||||
baseCacheRam / 1024);
|
baseCacheRam / 1024, memTotalTime);
|
||||||
osEntry.evaluateTargetPackage(mPm, mStats, bgTotals, runTotals, sEntryCompare, mUseUss);
|
osEntry.evaluateTargetPackage(mPm, mStats, bgTotals, runTotals, sEntryCompare, mUseUss);
|
||||||
osPkg.addEntry(osEntry);
|
osPkg.addEntry(osEntry);
|
||||||
}
|
}
|
||||||
|
@@ -72,13 +72,14 @@ public final class ProcStatsEntry implements Parcelable {
|
|||||||
+ " avgpss=" + mAvgBgMem + " weight=" + mBgWeight);
|
+ " avgpss=" + mAvgBgMem + " weight=" + mBgWeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProcStatsEntry(String pkgName, int uid, String procName, long duration, long mem) {
|
public ProcStatsEntry(String pkgName, int uid, String procName, long duration, long mem,
|
||||||
|
long memDuration) {
|
||||||
mPackage = pkgName;
|
mPackage = pkgName;
|
||||||
mUid = uid;
|
mUid = uid;
|
||||||
mName = procName;
|
mName = procName;
|
||||||
mBgDuration = mRunDuration = duration;
|
mBgDuration = mRunDuration = duration;
|
||||||
mAvgBgMem = mMaxBgMem = mAvgRunMem = mMaxRunMem = mem;
|
mAvgBgMem = mMaxBgMem = mAvgRunMem = mMaxRunMem = mem;
|
||||||
mBgWeight = mRunWeight = ((double)duration) * mem;
|
mBgWeight = mRunWeight = ((double)memDuration) * mem;
|
||||||
if (DEBUG) Log.d(TAG, "New proc entry " + procName + ": dur=" + mBgDuration
|
if (DEBUG) Log.d(TAG, "New proc entry " + procName + ": dur=" + mBgDuration
|
||||||
+ " avgpss=" + mAvgBgMem + " weight=" + mBgWeight);
|
+ " avgpss=" + mAvgBgMem + " weight=" + mBgWeight);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user