From ec18e35cd3e95e72f831ea55a2d0aa45f2e85755 Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Sat, 11 Jul 2020 09:36:33 -0700 Subject: [PATCH] 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 --- .../core/jni/ReactCommon/TurboModuleManager.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp index ac3a74c2066..c2a3b76df36 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include "TurboModuleManager.h" @@ -81,11 +82,19 @@ void TurboModuleManager::installJSIBindings() { return nullptr; } + const char *moduleName = name.c_str(); + + TurboModulePerfLogger::moduleJSRequireBeginningStart(moduleName); + auto turboModuleLookup = turboModuleCache->find(name); if (turboModuleLookup != turboModuleCache->end()) { + TurboModulePerfLogger::moduleJSRequireBeginningCacheHit(moduleName); + TurboModulePerfLogger::moduleJSRequireBeginningEnd(moduleName); return turboModuleLookup->second; } + TurboModulePerfLogger::moduleJSRequireBeginningEnd(moduleName); + auto cxxModule = delegate->cthis()->getTurboModule(name, jsCallInvoker); if (cxxModule) { turboModuleCache->insert({name, cxxModule}); @@ -99,9 +108,13 @@ void TurboModuleManager::installJSIBindings() { auto legacyCxxModule = getLegacyCxxModule(javaPart.get(), name); if (legacyCxxModule) { + TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName); + auto turboModule = std::make_shared( legacyCxxModule->cthis()->getModule(), jsCallInvoker); turboModuleCache->insert({name, turboModule}); + + TurboModulePerfLogger::moduleJSRequireEndingEnd(moduleName); return turboModule; } @@ -112,6 +125,7 @@ void TurboModuleManager::installJSIBindings() { auto moduleInstance = getJavaModule(javaPart.get(), name); if (moduleInstance) { + TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName); JavaTurboModule::InitParams params = {.moduleName = name, .instance = moduleInstance, .jsInvoker = jsCallInvoker, @@ -119,6 +133,7 @@ void TurboModuleManager::installJSIBindings() { auto turboModule = delegate->cthis()->getTurboModule(name, params); turboModuleCache->insert({name, turboModule}); + TurboModulePerfLogger::moduleJSRequireEndingEnd(moduleName); return turboModule; }