Added tool to generate application-specific reports from class load profiling data. Generated new profiling data. Deleted old data. Generated new preloaded-classes file.
diff --git a/tools/preload/LoadedClass.java b/tools/preload/LoadedClass.java
index 86e5dfc..02cff10 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 @@
         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);
     }