More optimization of dumpsys output.

There are three major classes of changes here:

- Avoid writing lines where their values are often empty, false, or some other typical thing.
- Use partial writes to the PrintWriter to avoid creating temporary strings.
- Use StringBuilder where we need to generate real String objects (and where possible cache the result).
This commit is contained in:
Dianne Hackborn
2009-04-20 18:14:05 -07:00
parent a0c9e8526b
commit 1d442e0d99
29 changed files with 1366 additions and 732 deletions

View File

@@ -16,6 +16,7 @@
package com.android.server;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -89,11 +90,11 @@ public class IntentResolver<F extends IntentFilter, R extends Object> {
}
}
void dumpMap(Printer out, String prefix, Map<String, ArrayList<F>> map) {
void dumpMap(PrintWriter out, String prefix, Map<String, ArrayList<F>> map) {
String eprefix = prefix + " ";
String fprefix = prefix + " ";
for (Map.Entry<String, ArrayList<F>> e : map.entrySet()) {
out.println(eprefix + e.getKey() + ":");
out.print(eprefix); out.print(e.getKey()); out.println(":");
ArrayList<F> a = e.getValue();
final int N = a.size();
for (int i=0; i<N; i++) {
@@ -102,24 +103,25 @@ public class IntentResolver<F extends IntentFilter, R extends Object> {
}
}
public void dump(Printer out, String prefix) {
out.println(prefix + "Full MIME Types:");
dumpMap(out, prefix+" ", mTypeToFilter);
out.println(prefix);
out.println(prefix + "Base MIME Types:");
dumpMap(out, prefix+" ", mBaseTypeToFilter);
out.println(prefix);
out.println(prefix + "Wild MIME Types:");
dumpMap(out, prefix+" ", mWildTypeToFilter);
out.println(prefix);
out.println(prefix + "Schemes:");
dumpMap(out, prefix+" ", mSchemeToFilter);
out.println(prefix);
out.println(prefix + "Non-Data Actions:");
dumpMap(out, prefix+" ", mActionToFilter);
out.println(prefix);
out.println(prefix + "MIME Typed Actions:");
dumpMap(out, prefix+" ", mTypedActionToFilter);
public void dump(PrintWriter out, String prefix) {
String innerPrefix = prefix + " ";
out.print(prefix); out.println("Full MIME Types:");
dumpMap(out, innerPrefix, mTypeToFilter);
out.println(" ");
out.print(prefix); out.println("Base MIME Types:");
dumpMap(out, innerPrefix, mBaseTypeToFilter);
out.println(" ");
out.print(prefix); out.println("Wild MIME Types:");
dumpMap(out, innerPrefix, mWildTypeToFilter);
out.println(" ");
out.print(prefix); out.println("Schemes:");
dumpMap(out, innerPrefix, mSchemeToFilter);
out.println(" ");
out.print(prefix); out.println("Non-Data Actions:");
dumpMap(out, innerPrefix, mActionToFilter);
out.println(" ");
out.print(prefix); out.println("MIME Typed Actions:");
dumpMap(out, innerPrefix, mTypedActionToFilter);
}
private class IteratorWrapper implements Iterator<F> {
@@ -275,8 +277,8 @@ public class IntentResolver<F extends IntentFilter, R extends Object> {
Collections.sort(results, mResolvePrioritySorter);
}
protected void dumpFilter(Printer out, String prefix, F filter) {
out.println(prefix + filter);
protected void dumpFilter(PrintWriter out, String prefix, F filter) {
out.print(prefix); out.println(filter);
}
private final int register_mime_types(F filter, String prefix) {