summaryrefslogtreecommitdiffstats
path: root/tools/preload/LoadedClass.java
diff options
context:
space:
mode:
authorBob Lee <crazybob@google.com>2009-08-13 14:41:54 -0700
committerBob Lee <crazybob@google.com>2009-08-17 15:36:15 -0700
commit9d2d6e14b0932b6a74e01f393d5efed61458941b (patch)
tree833ec805d5f8eded7819bd98fea6587ed2098501 /tools/preload/LoadedClass.java
parent802527c6a8a91f7da72f2ce9f6cb3cc342582127 (diff)
downloadframeworks_base-9d2d6e14b0932b6a74e01f393d5efed61458941b.zip
frameworks_base-9d2d6e14b0932b6a74e01f393d5efed61458941b.tar.gz
frameworks_base-9d2d6e14b0932b6a74e01f393d5efed61458941b.tar.bz2
Simplified algorithm used to generate the preloaded-classes list. Generated a new preloaded-classes file.
Diffstat (limited to 'tools/preload/LoadedClass.java')
-rw-r--r--tools/preload/LoadedClass.java51
1 files changed, 14 insertions, 37 deletions
diff --git a/tools/preload/LoadedClass.java b/tools/preload/LoadedClass.java
index 9ef17f5..86e5dfc 100644
--- a/tools/preload/LoadedClass.java
+++ b/tools/preload/LoadedClass.java
@@ -51,7 +51,7 @@ class LoadedClass implements Serializable, Comparable<LoadedClass> {
}
void measureMemoryUsage() {
-// this.memoryUsage = MemoryUsage.forClass(name);
+ this.memoryUsage = MemoryUsage.forClass(name);
}
int mlt = -1;
@@ -76,6 +76,10 @@ class LoadedClass implements Serializable, Comparable<LoadedClass> {
return mit = calculateMedian(initializations);
}
+ int medianTimeMicros() {
+ return medianInitTimeMicros() + medianLoadTimeMicros();
+ }
+
/** Calculates the median duration for a list of operations. */
private static int calculateMedian(List<Operation> operations) {
int size = operations.size();
@@ -99,18 +103,18 @@ class LoadedClass implements Serializable, Comparable<LoadedClass> {
}
}
- /** Returns names of apps that loaded this class. */
- Set<String> applicationNames() {
- Set<String> appNames = new HashSet<String>();
- addProcessNames(loads, appNames);
- addProcessNames(initializations, appNames);
- return appNames;
+ /** Returns names of processes that loaded this class. */
+ Set<String> processNames() {
+ Set<String> names = new HashSet<String>();
+ addProcessNames(loads, names);
+ addProcessNames(initializations, names);
+ return names;
}
- private void addProcessNames(List<Operation> ops, Set<String> appNames) {
+ private void addProcessNames(List<Operation> ops, Set<String> names) {
for (Operation operation : ops) {
- if (operation.process.isApplication()) {
- appNames.add(operation.process.name);
+ if (operation.process.fromZygote()) {
+ names.add(operation.process.name);
}
}
}
@@ -123,31 +127,4 @@ class LoadedClass implements Serializable, Comparable<LoadedClass> {
public String toString() {
return name;
}
-
- /**
- * Returns true if this class's initialization causes the given class to
- * initialize.
- */
- public boolean initializes(LoadedClass clazz, Set<LoadedClass> visited) {
- // Avoid infinite recursion.
- if (!visited.add(this)) {
- return false;
- }
-
- if (clazz == this) {
- return true;
- }
-
- for (Operation initialization : initializations) {
- if (initialization.loadedClass.initializes(clazz, visited)) {
- return true;
- }
- }
-
- return false;
- }
-
- public boolean isPreloadable() {
- return systemClass && Policy.isPreloadableClass(name);
- }
}