Don't initialize SpeedTracerLogger thread or process time keepers if not enabled.

Review at http://gwt-code-reviews.appspot.com/1456801

Review by: jhumphries@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10296 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
index 51148a5..d415527 100644
--- a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
+++ b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
@@ -113,7 +113,9 @@
 
     Event() {
       if (enabled) {
-        threadCpuTimeKeeper.resetTimeBase();
+        if (logThreadCpuTime) {
+          threadCpuTimeKeeper.resetTimeBase();
+        }
         recordStartTime();
         this.data = Lists.create();
         this.children = Lists.create();
@@ -702,10 +704,11 @@
 
   private final ElapsedNormalizedTimeKeeper elapsedTimeKeeper = new ElapsedNormalizedTimeKeeper();
 
-  private final ProcessNormalizedTimeKeeper processCpuTimeKeeper =
-      new ProcessNormalizedTimeKeeper();
+  private final ProcessNormalizedTimeKeeper processCpuTimeKeeper = 
+              (logProcessCpuTime) ? new ProcessNormalizedTimeKeeper() : null;
 
-  private final ThreadNormalizedTimeKeeper threadCpuTimeKeeper = new ThreadNormalizedTimeKeeper();
+  private final ThreadNormalizedTimeKeeper threadCpuTimeKeeper = 
+              (logThreadCpuTime) ? new ThreadNormalizedTimeKeeper() : null;
 
   /**
    * Constructor intended for unit testing.
@@ -899,9 +902,11 @@
     if (!threadPendingEvents.isEmpty()) {
       parent = threadPendingEvents.peek();
     } else {
-      // reset the thread CPU time base for top-level events (so events can be
-      // properly sequenced chronologically)
-      threadCpuTimeKeeper.resetTimeBase();
+      if (logThreadCpuTime) {
+        // reset the thread CPU time base for top-level events (so events can be
+        // properly sequenced chronologically)
+        threadCpuTimeKeeper.resetTimeBase();
+      }
     }
     
     Event newEvent = new Event(session, parent, type, data);