Records names of JSNI calls and callbacks in SpeedTracer events. Review at http://gwt-code-reviews.appspot.com/1356806 git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9820 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java b/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java index 8ef7931..dba7631 100644 --- a/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java +++ b/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java
@@ -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();
diff --git a/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java b/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java index 746b902..1fc5b1a 100644 --- a/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java +++ b/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java
@@ -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();
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 7aadc1c..7cdb2a4 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
@@ -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. */ @@ -439,6 +444,13 @@ } /** + * 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. */