Commit eaca10e2 authored by Jesse Wilson's avatar Jesse Wilson
Browse files

Regenerate preloaded classes for Gingerbread.

Unlike previous releases where the set of classes-to-be-preloaded
was generated on a first-generation device (G1 and MyTouch 3G), this
round I used a second-generation device, a Nexus One. As a consequence,
class loading is faster (win) and fewer classes hit the 1250ms threshold.
Instead of sharing classes based on load time alone, classes are now shared
based on the number of applications loading them.

Change-Id: I18f7aa3e7e6258818871b3968b515c06314371b3
http://b/2546002
parent 844a6b3c
This diff is collapsed.
......@@ -34,6 +34,11 @@ public class WritePreloadedClassFile {
*/
static final int MIN_LOAD_TIME_MICROS = 1250;
/**
* Preload any class that was loaded by at least MIN_PROCESSES processes.
*/
static final int MIN_PROCESSES = 10;
public static void main(String[] args) throws IOException,
ClassNotFoundException {
if (args.length != 1) {
......@@ -58,6 +63,7 @@ public class WritePreloadedClassFile {
out.write("# Automatically generated by frameworks/base/tools/preload/"
+ WritePreloadedClassFile.class.getSimpleName() + ".java.\n");
out.write("# MIN_LOAD_TIME_MICROS=" + MIN_LOAD_TIME_MICROS + "\n");
out.write("# MIN_PROCESSES=" + MIN_PROCESSES + "\n");
/*
* The set of classes to preload. We preload a class if:
......@@ -73,7 +79,12 @@ public class WritePreloadedClassFile {
// the memory associated with these classes will be shared.
for (LoadedClass loadedClass : root.loadedClasses.values()) {
Set<String> names = loadedClass.processNames();
if (shouldPreload(loadedClass) && names.size() > 1) {
if (!Policy.isPreloadable(loadedClass)) {
continue;
}
if (names.size() >= MIN_PROCESSES ||
(loadedClass.medianTimeMicros() > MIN_LOAD_TIME_MICROS && names.size() > 1)) {
toPreload.add(loadedClass);
}
}
......
......@@ -2,6 +2,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_MODULE_TAGS := tests
LOCAL_MODULE := loadclass
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment