From fcc3ccb9769dd39ac93dbad56ee590e2f7d041c3 Mon Sep 17 00:00:00 2001 From: Bob Lee Date: Wed, 23 Sep 2009 11:21:22 -0700 Subject: Added tool to generate application-specific reports from class load profiling data. Generated new profiling data. Deleted old data. Generated new preloaded-classes file. --- tools/preload/LoadedClass.java | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'tools/preload/LoadedClass.java') 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 { this.systemClass = systemClass; } + /** + * Returns true if this class was loaded by more than one proc. + */ + boolean isSharable() { + Set procNames = new HashSet(); + 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); } -- cgit v1.2.3-59-g8ed1b