jdk/src/share/classes/java/lang/ClassLoader.java
changeset 3849 34469964aa98
parent 3833 b666ed188811
child 3958 b8acd5ee4f4f
--- a/jdk/src/share/classes/java/lang/ClassLoader.java	Mon Sep 14 17:47:26 2009 +0100
+++ b/jdk/src/share/classes/java/lang/ClassLoader.java	Mon Sep 14 13:37:26 2009 -0700
@@ -380,6 +380,7 @@
             // First, check if the class has already been loaded
             Class c = findLoadedClass(name);
             if (c == null) {
+                long t0 = System.nanoTime();
                 try {
                     if (parent != null) {
                         c = parent.loadClass(name, false);
@@ -394,7 +395,13 @@
                 if (c == null) {
                     // If still not found, then invoke findClass in order
                     // to find the class.
+                    long t1 = System.nanoTime();
                     c = findClass(name);
+
+                    // this is the defining class loader; record the stats
+                    sun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0);
+                    sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1);
+                    sun.misc.PerfCounter.getFindClasses().increment();
                 }
             }
             if (resolve) {