summaryrefslogtreecommitdiff
path: root/tools/preload/LoadedClass.java
diff options
context:
space:
mode:
author Bob Lee <crazybob@crazybob.org> 2009-09-23 11:21:22 -0700
committer Bob Lee <crazybob@crazybob.org> 2009-09-23 11:21:22 -0700
commitfcc3ccb9769dd39ac93dbad56ee590e2f7d041c3 (patch)
tree043fcb85ad730552ff7ac4e48de42d3a9abbf7dd /tools/preload/LoadedClass.java
parentb06c9a8c8e59067edd3c6b5af574ff382a4ef656 (diff)
Added tool to generate application-specific reports from class load profiling data. Generated new profiling data. Deleted old data. Generated new preloaded-classes file.
Diffstat (limited to 'tools/preload/LoadedClass.java')
-rw-r--r--tools/preload/LoadedClass.java30
1 files changed, 29 insertions, 1 deletions
diff --git a/tools/preload/LoadedClass.java b/tools/preload/LoadedClass.java
index 86e5dfc0331a..02cff10def98 100644
--- a/tools/preload/LoadedClass.java
+++ b/tools/preload/LoadedClass.java
@@ -15,7 +15,11 @@
*/
import java.io.Serializable;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
/**
* A loaded class.
@@ -50,6 +54,30 @@ class LoadedClass implements Serializable, Comparable<LoadedClass> {
this.systemClass = systemClass;
}
+ /**
+ * Returns true if this class was loaded by more than one proc.
+ */
+ boolean isSharable() {
+ Set<String> procNames = new HashSet<String>();
+ for (Operation load : loads) {
+ if (load.process.fromZygote()) {
+ procNames.add(load.process.name);
+ if (procNames.size() > 1) {
+ return true;
+ }
+ }
+ }
+ for (Operation init : initializations) {
+ if (init.process.fromZygote()) {
+ procNames.add(init.process.name);
+ if (procNames.size() > 1) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
void measureMemoryUsage() {
this.memoryUsage = MemoryUsage.forClass(name);
}