Skip to content

Commit ec18e35

Browse files
RSNarafacebook-github-bot
authored andcommitted
Instrument events emitted by TurboModuleManager
Summary: TurboModuleManager can emit the following events: - JS Require Beginning - JS Require Ending - Module Create (for C++-only TurboModules) This diff instruments JS Require beginning, and JS Require ending. It also serves as a good stopgap to verify that TurboModule perf logging is set up correctly. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D22485529 fbshipit-source-id: a41b88b56627ad2bbcaadac87bf9d530bf07ae81
1 parent 41d948c commit ec18e35

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
#include <ReactCommon/TurboCxxModule.h>
1515
#include <ReactCommon/TurboModuleBinding.h>
16+
#include <ReactCommon/TurboModulePerfLogger.h>
1617
#include <react/jni/JMessageQueueThread.h>
1718

1819
#include "TurboModuleManager.h"
@@ -81,11 +82,19 @@ void TurboModuleManager::installJSIBindings() {
8182
return nullptr;
8283
}
8384

85+
const char *moduleName = name.c_str();
86+
87+
TurboModulePerfLogger::moduleJSRequireBeginningStart(moduleName);
88+
8489
auto turboModuleLookup = turboModuleCache->find(name);
8590
if (turboModuleLookup != turboModuleCache->end()) {
91+
TurboModulePerfLogger::moduleJSRequireBeginningCacheHit(moduleName);
92+
TurboModulePerfLogger::moduleJSRequireBeginningEnd(moduleName);
8693
return turboModuleLookup->second;
8794
}
8895

96+
TurboModulePerfLogger::moduleJSRequireBeginningEnd(moduleName);
97+
8998
auto cxxModule = delegate->cthis()->getTurboModule(name, jsCallInvoker);
9099
if (cxxModule) {
91100
turboModuleCache->insert({name, cxxModule});
@@ -99,9 +108,13 @@ void TurboModuleManager::installJSIBindings() {
99108
auto legacyCxxModule = getLegacyCxxModule(javaPart.get(), name);
100109

101110
if (legacyCxxModule) {
111+
TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
112+
102113
auto turboModule = std::make_shared<react::TurboCxxModule>(
103114
legacyCxxModule->cthis()->getModule(), jsCallInvoker);
104115
turboModuleCache->insert({name, turboModule});
116+
117+
TurboModulePerfLogger::moduleJSRequireEndingEnd(moduleName);
105118
return turboModule;
106119
}
107120

@@ -112,13 +125,15 @@ void TurboModuleManager::installJSIBindings() {
112125
auto moduleInstance = getJavaModule(javaPart.get(), name);
113126

114127
if (moduleInstance) {
128+
TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
115129
JavaTurboModule::InitParams params = {.moduleName = name,
116130
.instance = moduleInstance,
117131
.jsInvoker = jsCallInvoker,
118132
.nativeInvoker = nativeCallInvoker};
119133

120134
auto turboModule = delegate->cthis()->getTurboModule(name, params);
121135
turboModuleCache->insert({name, turboModule});
136+
TurboModulePerfLogger::moduleJSRequireEndingEnd(moduleName);
122137
return turboModule;
123138
}
124139

0 commit comments

Comments
 (0)