Revision: 9820
Author: [email protected]
Date: Mon Mar  7 09:15:21 2011
Log: Records names of JSNI calls and callbacks in SpeedTracer events.

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

http://code.google.com/p/google-web-toolkit/source/detail?r=9820

Modified:
 /trunk/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java
 /trunk/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java
/trunk/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java

=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java Mon Feb 7 13:29:15 2011 +++ /trunk/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java Mon Mar 7 09:15:21 2011
@@ -110,6 +110,9 @@
         "Invoke native method " + name, null);
     Event javaToJsCallEvent =
         SpeedTracerLogger.start(DevModeEventType.JAVA_TO_JS_CALL);
+    if (SpeedTracerLogger.jsniCallLoggingEnabled()) {
+      javaToJsCallEvent.addData("name", name);
+    }

     CompilingClassLoader isolatedClassLoader = getIsolatedClassLoader();
     JsValueOOPHM jsthis = new JsValueOOPHM();
=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java Wed Aug 11 07:24:43 2010 +++ /trunk/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java Mon Mar 7 09:15:21 2011
@@ -115,6 +115,16 @@
     JsValueOOPHM jsThis = new JsValueOOPHM();
     channel.convertToJsValue(cl, localObjects, thisVal, jsThis);

+    if (SpeedTracerLogger.jsniCallLoggingEnabled()) {
+ DispatchClassInfo clsInfo = cl.getClassInfoByDispId(methodDispatchId);
+      if (clsInfo != null) {
+        Member member = clsInfo.getMember(methodDispatchId);
+        if (member != null) {
+          jsToJavaCallEvent.addData("name", member.toString());
+        }
+      }
+    }
+
     TreeLogger branch = TreeLogger.NULL;
     if (logger.isLoggable(TreeLogger.SPAM)) {
       StringBuffer logMsg = new StringBuffer();
=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java Wed Feb 23 12:33:24 2011 +++ /trunk/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java Mon Mar 7 09:15:21 2011
@@ -76,6 +76,11 @@
   private static final boolean logOverheadTime =
     getBooleanProperty("gwt.speedtracer.logOverheadTime");

+ // Disable logging of JSNI calls and callbacks to reduce memory usage where
+  // the heap is already tight.
+  private static final boolean jsniCallLoggingEnabled =
+      !getBooleanProperty("gwt.speedtracer.disableJsniLogging");
+
   /**
    * Represents a node in a tree of SpeedTracer events.
    */
@@ -438,6 +443,13 @@
     get();
   }

+  /**
+   * Returns true if JSNI calls and callbacks are being logged.
+   */
+  public static boolean jsniCallLoggingEnabled() {
+    return jsniCallLoggingEnabled;
+  }
+
   /**
* Adds a LOG_MESSAGE SpeedTracer event to the log. This represents a single
    * point in time and has a special representation in the SpeedTracer UI.

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to