Add init react runtime start time in performance API (#38328)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/38328

This diff adds the two extra markers `initializeRuntimeStart` and `initializeRuntimeEnd` to the startup performance API. The runtime start time matches the existing android marker `GET_REACT_INSTANCE_MANAGER_START`, which is the first marker we have on the RN android app.

Changelog:
[Android][Added] - Add `performance.reactNativeStartupTiming.initializeRuntimeStart` and` `performance.reactNativeStartupTiming.initializeRuntimeEnd` API

Reviewed By: mdvacca

Differential Revision: D43863974

fbshipit-source-id: 277d35e14dbb5e3def8d440b717b3cf0215b4f47
This commit is contained in:
Xin Chen
2023-07-27 16:14:58 -07:00
committed by Facebook GitHub Bot
parent d380bb8473
commit 10e8b3538f
17 changed files with 104 additions and 8 deletions
@@ -56,17 +56,21 @@ std::unordered_map<std::string, double> NativePerformance::getSimpleMemoryInfo(
ReactNativeStartupTiming NativePerformance::getReactNativeStartupTiming(
jsi::Runtime &rt) {
ReactNativeStartupTiming result = {0, 0, 0, 0};
ReactNativeStartupTiming result = {0, 0, 0, 0, 0, 0};
ReactMarker::StartupLogger &startupLogger =
ReactMarker::StartupLogger::getInstance();
result.startTime = startupLogger.getAppStartupStartTime();
if (result.startTime == 0) {
result.startTime = startupLogger.getInitReactRuntimeStartTime();
}
result.initializeRuntimeStart = startupLogger.getInitReactRuntimeStartTime();
result.executeJavaScriptBundleEntryPointStart =
startupLogger.getRunJSBundleStartTime();
result.executeJavaScriptBundleEntryPointEnd =
startupLogger.getRunJSBundleEndTime();
result.initializeRuntimeEnd = startupLogger.getInitReactRuntimeEndTime();
result.endTime = startupLogger.getAppStartupEndTime();
return result;
}