From e2204c5ccbb9b2eaa62408af09d7d1ad79f6ba67 Mon Sep 17 00:00:00 2001 From: Aaron Chiu Date: Sat, 25 Mar 2017 09:32:45 -0700 Subject: [PATCH] measure delay of calling into UI thread when setting up ReactContext Reviewed By: yungsters Differential Revision: D4736627 fbshipit-source-id: 6d425ef0ad7bbd54296a619009136c929cb16030 --- .../java/com/facebook/react/ReactInstanceManager.java | 8 +++++++- .../com/facebook/react/bridge/ReactMarkerConstants.java | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java index 32a4f92c9..3f97a2828 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java @@ -78,6 +78,8 @@ import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_CATALYST_INS import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_REACT_CONTEXT_START; import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_VIEW_MANAGERS_END; import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_VIEW_MANAGERS_START; +import static com.facebook.react.bridge.ReactMarkerConstants.PRE_SETUP_REACT_CONTEXT_END; +import static com.facebook.react.bridge.ReactMarkerConstants.PRE_SETUP_REACT_CONTEXT_START; import static com.facebook.react.bridge.ReactMarkerConstants.PROCESS_PACKAGES_END; import static com.facebook.react.bridge.ReactMarkerConstants.PROCESS_PACKAGES_START; import static com.facebook.react.bridge.ReactMarkerConstants.SETUP_REACT_CONTEXT_END; @@ -217,7 +219,10 @@ public class ReactInstanceManager { Assertions.assertCondition(params != null && params.length > 0 && params[0] != null); try { JavaScriptExecutor jsExecutor = params[0].getJsExecutorFactory().create(); - return Result.of(createReactContext(jsExecutor, params[0].getJsBundleLoader())); + ReactApplicationContext reactApplicationContext = + createReactContext(jsExecutor, params[0].getJsBundleLoader()); + ReactMarker.logMarker(PRE_SETUP_REACT_CONTEXT_START); + return Result.of(reactApplicationContext); } catch (Exception e) { // Pass exception to onPostExecute() so it can be handled on the main thread return Result.of(e); @@ -777,6 +782,7 @@ public class ReactInstanceManager { } private void setupReactContext(ReactApplicationContext reactContext) { + ReactMarker.logMarker(PRE_SETUP_REACT_CONTEXT_END); ReactMarker.logMarker(SETUP_REACT_CONTEXT_START); Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "setupReactContext"); UiThreadUtil.assertOnUiThread(); diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java index a3f2f8e35..70f868d90 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java @@ -68,5 +68,6 @@ public class ReactMarkerConstants { public static final String ON_HOST_PAUSE_END = "ON_HOST_PAUSE_END"; public static final String CONVERT_CONSTANTS_START = "CONVERT_CONSTANTS_START"; public static final String CONVERT_CONSTANTS_END = "CONVERT_CONSTANTS_END"; - public static final String PRE_REACT_CONTEXT_END = "PRE_REACT_CONTEXT_END"; + public static final String PRE_SETUP_REACT_CONTEXT_START = "PRE_SETUP_REACT_CONTEXT_START"; + public static final String PRE_SETUP_REACT_CONTEXT_END = "PRE_SETUP_REACT_CONTEXT_END"; }