summaryrefslogtreecommitdiff
path: root/tools/preload/LoadedClass.java
diff options
context:
space:
mode:
Diffstat (limited to 'tools/preload/LoadedClass.java')
-rw-r--r--tools/preload/LoadedClass.java130
1 files changed, 0 insertions, 130 deletions
diff --git a/tools/preload/LoadedClass.java b/tools/preload/LoadedClass.java
deleted file mode 100644
index 86e5dfc0331a..000000000000
--- a/tools/preload/LoadedClass.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.io.Serializable;
-import java.util.*;
-
-/**
- * A loaded class.
- */
-class LoadedClass implements Serializable, Comparable<LoadedClass> {
-
- private static final long serialVersionUID = 0;
-
- /** Class name. */
- final String name;
-
- /** Load operations. */
- final List<Operation> loads = new ArrayList<Operation>();
-
- /** Static initialization operations. */
- final List<Operation> initializations = new ArrayList<Operation>();
-
- /** Memory usage gathered by loading only this class in its own VM. */
- MemoryUsage memoryUsage = MemoryUsage.NOT_AVAILABLE;
-
- /**
- * Whether or not this class was loaded in the system class loader.
- */
- final boolean systemClass;
-
- /** Whether or not this class will be preloaded. */
- boolean preloaded;
-
- /** Constructs a new class. */
- LoadedClass(String name, boolean systemClass) {
- this.name = name;
- this.systemClass = systemClass;
- }
-
- void measureMemoryUsage() {
- this.memoryUsage = MemoryUsage.forClass(name);
- }
-
- int mlt = -1;
-
- /** Median time to load this class. */
- int medianLoadTimeMicros() {
- if (mlt != -1) {
- return mlt;
- }
-
- return mlt = calculateMedian(loads);
- }
-
- int mit = -1;
-
- /** Median time to initialize this class. */
- int medianInitTimeMicros() {
- if (mit != -1) {
- return mit;
- }
-
- 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();
- if (size == 0) {
- return 0;
- }
-
- int[] times = new int[size];
- for (int i = 0; i < size; i++) {
- times[i] = operations.get(i).exclusiveTimeMicros();
- }
-
- Arrays.sort(times);
- int middle = size / 2;
- if (size % 2 == 1) {
- // Odd
- return times[middle];
- } else {
- // Even -- average the two.
- return (times[middle - 1] + times[middle]) / 2;
- }
- }
-
- /** 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> names) {
- for (Operation operation : ops) {
- if (operation.process.fromZygote()) {
- names.add(operation.process.name);
- }
- }
- }
-
- public int compareTo(LoadedClass o) {
- return name.compareTo(o.name);
- }
-
- @Override
- public String toString() {
- return name;
- }
-}