From bccc3ee7ae22164cbd37b01f421f5a80e297c93e Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Wed, 29 Jan 2025 03:11:55 -0800 Subject: [PATCH 1/2] Migrate TurboModulePerfLogger to Kotlin + internalize it. Summary: This class was still in Java. I'm converting it to Kotlin + I'm making it internal. As this class was inside the `com.facebook.react.internal.turbomodule.core` package, we don't consider this a breaking change. Changelog: [Internal] [Changed] - Differential Revision: D68826892 --- .../core/TurboModulePerfLogger.java | 93 ------------------- .../turbomodule/core/TurboModulePerfLogger.kt | 78 ++++++++++++++++ 2 files changed, 78 insertions(+), 93 deletions(-) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.java create mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.java deleted file mode 100644 index a452acf82e57..000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.internal.turbomodule.core; - -import com.facebook.infer.annotation.Nullsafe; -import com.facebook.proguard.annotations.DoNotStrip; -import com.facebook.react.reactperflogger.NativeModulePerfLogger; -import javax.annotation.Nullable; - -@Nullsafe(Nullsafe.Mode.LOCAL) -@DoNotStrip -class TurboModulePerfLogger { - - @Nullable private static NativeModulePerfLogger sNativeModulePerfLogger = null; - - static { - NativeModuleSoLoader.maybeLoadSoLibrary(); - } - - public static void moduleDataCreateStart(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleDataCreateStart(moduleName, id); - } - } - - public static void moduleDataCreateEnd(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleDataCreateEnd(moduleName, id); - } - } - - public static void moduleCreateStart(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleCreateStart(moduleName, id); - } - } - - public static void moduleCreateCacheHit(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleCreateCacheHit(moduleName, id); - } - } - - public static void moduleCreateConstructStart(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleCreateConstructStart(moduleName, id); - } - } - - public static void moduleCreateConstructEnd(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleCreateConstructEnd(moduleName, id); - } - } - - public static void moduleCreateSetUpStart(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleCreateSetUpStart(moduleName, id); - } - } - - public static void moduleCreateSetUpEnd(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleCreateSetUpEnd(moduleName, id); - } - } - - public static void moduleCreateEnd(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleCreateEnd(moduleName, id); - } - } - - public static void moduleCreateFail(String moduleName, int id) { - if (sNativeModulePerfLogger != null) { - sNativeModulePerfLogger.moduleCreateFail(moduleName, id); - } - } - - private static native void jniEnableCppLogging(NativeModulePerfLogger perfLogger); - - public static void enableLogging(NativeModulePerfLogger perfLogger) { - if (perfLogger != null) { - sNativeModulePerfLogger = perfLogger; - jniEnableCppLogging(perfLogger); - } - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt new file mode 100644 index 000000000000..c846f32c6270 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt @@ -0,0 +1,78 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.internal.turbomodule.core + +import com.facebook.proguard.annotations.DoNotStrip +import com.facebook.react.internal.turbomodule.core.NativeModuleSoLoader.Companion.maybeLoadSoLibrary +import com.facebook.react.reactperflogger.NativeModulePerfLogger + +@DoNotStrip +internal object TurboModulePerfLogger { + private var nativeModulePerfLogger: NativeModulePerfLogger? = null + + init { + maybeLoadSoLibrary() + } + + fun moduleDataCreateStart(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleDataCreateStart(checkNotNull(moduleName), id) + } + + fun moduleDataCreateEnd(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleDataCreateEnd(checkNotNull(moduleName), id) + } + + @JvmStatic + fun moduleCreateStart(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleCreateStart(checkNotNull(moduleName), id) + } + + @JvmStatic + fun moduleCreateCacheHit(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleCreateCacheHit(checkNotNull(moduleName), id) + } + + @JvmStatic + fun moduleCreateConstructStart(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleCreateConstructStart(checkNotNull(moduleName), id) + } + + @JvmStatic + fun moduleCreateConstructEnd(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleCreateConstructEnd(checkNotNull(moduleName), id) + } + + @JvmStatic + fun moduleCreateSetUpStart(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleCreateSetUpStart(checkNotNull(moduleName), id) + } + + @JvmStatic + fun moduleCreateSetUpEnd(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleCreateSetUpEnd(checkNotNull(moduleName), id) + } + + @JvmStatic + fun moduleCreateEnd(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleCreateEnd(checkNotNull(moduleName), id) + } + + @JvmStatic + fun moduleCreateFail(moduleName: String?, id: Int) { + nativeModulePerfLogger?.moduleCreateFail(checkNotNull(moduleName), id) + } + + @DoNotStrip private external fun jniEnableCppLogging(perfLogger: NativeModulePerfLogger) + + fun enableLogging(perfLogger: NativeModulePerfLogger?) { + if (perfLogger != null) { + nativeModulePerfLogger = perfLogger + jniEnableCppLogging(perfLogger) + } + } +} From c94f60b990b29e46565633c780d339996029d273 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Wed, 29 Jan 2025 03:16:30 -0800 Subject: [PATCH 2/2] Remove unused methods from TurboModulePerfLogger Summary: Those methods are not used at all in the codebase, let's clean them up. Changelog: [Internal] [Changed] - Reviewed By: cipolleschi Differential Revision: D68826893 --- .../internal/turbomodule/core/TurboModulePerfLogger.kt | 8 -------- 1 file changed, 8 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt index c846f32c6270..5561b5e7d10d 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt @@ -19,14 +19,6 @@ internal object TurboModulePerfLogger { maybeLoadSoLibrary() } - fun moduleDataCreateStart(moduleName: String?, id: Int) { - nativeModulePerfLogger?.moduleDataCreateStart(checkNotNull(moduleName), id) - } - - fun moduleDataCreateEnd(moduleName: String?, id: Int) { - nativeModulePerfLogger?.moduleDataCreateEnd(checkNotNull(moduleName), id) - } - @JvmStatic fun moduleCreateStart(moduleName: String?, id: Int) { nativeModulePerfLogger?.moduleCreateStart(checkNotNull(moduleName), id)