Merge "Update dumpsys output"

This commit is contained in:
Alon Albert
2011-10-04 08:39:46 -07:00
committed by Android (Google) Code Review

View File

@@ -1301,7 +1301,7 @@ public class SyncManager implements OnAccountsUpdateListener {
elapsedTime = authoritySyncStats.elapsedTime; elapsedTime = authoritySyncStats.elapsedTime;
times = authoritySyncStats.times; times = authoritySyncStats.times;
timeStr = String.format("%d/%d%%", timeStr = String.format("%ds/%d%%",
elapsedTime / 1000, elapsedTime / 1000,
elapsedTime * 100 / totalElapsedTime); elapsedTime * 100 / totalElapsedTime);
timesStr = String.format("%d/%d%%", timesStr = String.format("%d/%d%%",
@@ -1309,32 +1309,30 @@ public class SyncManager implements OnAccountsUpdateListener {
times * 100 / totalTimes); times * 100 / totalTimes);
pw.printf(authorityFormat, name, timesStr, timeStr); pw.printf(authorityFormat, name, timesStr, timeStr);
if (authoritySyncStats.accountMap.size() > 1) { final List<AccountSyncStats> sortedAccounts =
final List<AccountSyncStats> sortedAccounts = new ArrayList<AccountSyncStats>(
new ArrayList<AccountSyncStats>( authoritySyncStats.accountMap.values());
authoritySyncStats.accountMap.values()); Collections.sort(sortedAccounts, new Comparator<AccountSyncStats>() {
Collections.sort(sortedAccounts, new Comparator<AccountSyncStats>() { @Override
@Override public int compare(AccountSyncStats lhs, AccountSyncStats rhs) {
public int compare(AccountSyncStats lhs, AccountSyncStats rhs) { // reverse order
// reverse order int compare = Integer.compare(rhs.times, lhs.times);
int compare = Integer.compare(rhs.times, lhs.times); if (compare == 0) {
if (compare == 0) { compare = Long.compare(rhs.elapsedTime, lhs.elapsedTime);
compare = Long.compare(rhs.elapsedTime, lhs.elapsedTime);
}
return compare;
} }
}); return compare;
for (AccountSyncStats stats: sortedAccounts) {
elapsedTime = stats.elapsedTime;
times = stats.times;
timeStr = String.format("%d/%d%%",
elapsedTime / 1000,
elapsedTime * 100 / totalElapsedTime);
timesStr = String.format("%d/%d%%",
times,
times * 100 / totalTimes);
pw.printf(accountFormat, stats.name, timesStr, timeStr);
} }
});
for (AccountSyncStats stats: sortedAccounts) {
elapsedTime = stats.elapsedTime;
times = stats.times;
timeStr = String.format("%ds/%d%%",
elapsedTime / 1000,
elapsedTime * 100 / totalElapsedTime);
timesStr = String.format("%d/%d%%",
times,
times * 100 / totalTimes);
pw.printf(accountFormat, stats.name, timesStr, timeStr);
} }
pw.println(separator); pw.println(separator);
} }
@@ -1342,9 +1340,8 @@ public class SyncManager implements OnAccountsUpdateListener {
pw.println(); pw.println();
pw.println("Recent Sync History"); pw.println("Recent Sync History");
final String format = " %-" + maxAccount + "s %s\n"; final String format = " %-" + maxAccount + "s %s\n";
String lastAuthorityName = null; final Map<String, Long> lastTimeMap = Maps.newHashMap();
String lastAccountKey = null;
long lastEventTime = 0;
for (int i = 0; i < N; i++) { for (int i = 0; i < N; i++) {
SyncStorageEngine.SyncHistoryItem item = items.get(i); SyncStorageEngine.SyncHistoryItem item = items.get(i);
SyncStorageEngine.AuthorityInfo authority SyncStorageEngine.AuthorityInfo authority
@@ -1363,21 +1360,32 @@ public class SyncManager implements OnAccountsUpdateListener {
final long eventTime = item.eventTime; final long eventTime = item.eventTime;
time.set(eventTime); time.set(eventTime);
pw.printf(" #%-3d: %s %8s %5.1fs", final String key = authorityName + "/" + accountKey;
final Long lastEventTime = lastTimeMap.get(key);
final String diffString;
if (lastEventTime == null) {
diffString = "";
} else {
final long diff = (lastEventTime - eventTime) / 1000;
if (diff < 60) {
diffString = String.valueOf(diff);
} else if (diff < 3600) {
diffString = String.format("%02d:%02d", diff / 60, diff % 60);
} else {
final long sec = diff % 3600;
diffString = String.format("%02d:%02d:%02d",
diff / 3600, sec / 60, sec % 60);
}
}
lastTimeMap.put(key, eventTime);
pw.printf(" #%-3d: %s %8s %5.1fs %8s",
i + 1, i + 1,
formatTime(eventTime), formatTime(eventTime),
SyncStorageEngine.SOURCES[item.source], SyncStorageEngine.SOURCES[item.source],
((float) elapsedTime) / 1000); ((float) elapsedTime) / 1000,
if (authorityName.equals(lastAuthorityName) && accountKey.equals(lastAccountKey)) { diffString);
final long span = (lastEventTime - eventTime) / 1000; pw.printf(format, accountKey, authorityName);
pw.printf(" %02d:%02d\n", span / 60, span % 60);
} else {
pw.printf(format, accountKey, authorityName);
}
lastAuthorityName = authorityName;
lastAccountKey = accountKey;
lastEventTime = eventTime;
if (item.event != SyncStorageEngine.EVENT_STOP if (item.event != SyncStorageEngine.EVENT_STOP
|| item.upstreamActivity != 0 || item.upstreamActivity != 0