From abf079abb88c8b20577c69e59a6fc05cb1f8f843 Mon Sep 17 00:00:00 2001 From: Lulu Wu Date: Mon, 22 Feb 2021 12:39:24 -0800 Subject: [PATCH] Make TTRC markers consistent between Bridge and Bridgeless Summary: The purpose of this change is to make TTRC markers work similarly for bridge loading and bridgeless loading so we could compare performance between them. There are mainly four cases involved: ```REACT_BRIDGE_LOADING_START, REACT_BRIDGE_LOADING_END, REACT_BRIDGELESS_LOADING_START, REACT_BRIDGELESS_LOADING_END ``` First 2 are for beginning/ending of bridge loading which includes creating fragment, loading JS bundle, running JS bundle and creating react instance. Last 2 are for similar purpose with bridgeless. Changelog: [Internal] Reviewed By: lunaleaps Differential Revision: D26514499 fbshipit-source-id: 65d6f3cc7de9e07a7a3a802dd77138e74c23aa5b --- .../java/com/facebook/react/ReactInstanceManager.java | 5 +++++ .../com/facebook/react/bridge/ReactMarkerConstants.java | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java index 69c52b585b6..056880805ce 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java @@ -1002,6 +1002,9 @@ public class ReactInstanceManager { private void runCreateReactContextOnNewThread(final ReactContextInitParams initParams) { FLog.d(ReactConstants.TAG, "ReactInstanceManager.runCreateReactContextOnNewThread()"); UiThreadUtil.assertOnUiThread(); + + // Mark start of bridge loading + ReactMarker.logMarker(ReactMarkerConstants.REACT_BRIDGE_LOADING_START); synchronized (mAttachedReactRoots) { synchronized (mReactContextLock) { if (mCurrentReactContext != null) { @@ -1133,6 +1136,8 @@ public class ReactInstanceManager { }); Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); ReactMarker.logMarker(SETUP_REACT_CONTEXT_END); + // Mark end of bridge loading + ReactMarker.logMarker(ReactMarkerConstants.REACT_BRIDGE_LOADING_END); reactContext.runOnJSQueueThread( new Runnable() { @Override 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 91e13be6f04..a0395cb6113 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java @@ -115,7 +115,9 @@ public enum ReactMarkerConstants { FABRIC_BATCH_EXECUTION_END, FABRIC_UPDATE_UI_MAIN_THREAD_START, FABRIC_UPDATE_UI_MAIN_THREAD_END, - // New markers used by bridgeless RN below this line - REACT_INSTANCE_INIT_START, - REACT_INSTANCE_INIT_END + // New markers used by bridge and bridgeless loading below this line + REACT_BRIDGE_LOADING_START, + REACT_BRIDGE_LOADING_END, + REACT_BRIDGELESS_LOADING_START, + REACT_BRIDGELESS_LOADING_END }