From e1adea86c601fca146a58f9eae69d24662c45900 Mon Sep 17 00:00:00 2001 From: Mike Armstrong Date: Fri, 27 Nov 2015 02:04:32 -0800 Subject: [PATCH] add timestamps to determine string convert time Reviewed By: astreet Differential Revision: D2684174 fb-gh-sync-id: feed759025e131fd913c6188f783d6920ad1839c --- ReactAndroid/src/main/jni/react/JSCExecutor.cpp | 13 +++++++++++++ ReactAndroid/src/main/jni/react/jni/OnLoad.cpp | 5 +++++ ReactAndroid/src/main/jni/react/jni/OnLoad.h | 13 +++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 ReactAndroid/src/main/jni/react/jni/OnLoad.h diff --git a/ReactAndroid/src/main/jni/react/JSCExecutor.cpp b/ReactAndroid/src/main/jni/react/JSCExecutor.cpp index ca7afa29a3..52eb369e77 100644 --- a/ReactAndroid/src/main/jni/react/JSCExecutor.cpp +++ b/ReactAndroid/src/main/jni/react/JSCExecutor.cpp @@ -10,6 +10,7 @@ #include #include #include "Value.h" +#include "jni/OnLoad.h" #ifdef WITH_JSC_EXTRA_TRACING #include @@ -96,7 +97,19 @@ JSCExecutor::~JSCExecutor() { void JSCExecutor::executeApplicationScript( const std::string& script, const std::string& sourceURL) { + JNIEnv* env = Environment::current(); + jclass markerClass = env->FindClass("com/facebook/react/bridge/ReactMarker"); + jmethodID logMarkerMethod = facebook::react::getLogMarkerMethod(); + jstring startStringMarker = env->NewStringUTF("executeApplicationScript_startStringConvert"); + jstring endStringMarker = env->NewStringUTF("executeApplicationScript_endStringConvert"); + + env->CallStaticVoidMethod(markerClass, logMarkerMethod, startStringMarker); String jsScript(script.c_str()); + env->CallStaticVoidMethod(markerClass, logMarkerMethod, endStringMarker); + + env->DeleteLocalRef(startStringMarker); + env->DeleteLocalRef(endStringMarker); + String jsSourceURL(sourceURL.c_str()); #ifdef WITH_FBSYSTRACE FbSystraceSection s(TRACE_TAG_REACT_CXX_BRIDGE, "JSCExecutor::executeApplicationScript", diff --git a/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp b/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp index e3ceddd5fd..6afa306da0 100644 --- a/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +++ b/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp @@ -16,6 +16,7 @@ #include "JSLoader.h" #include "ReadableNativeArray.h" #include "ProxyExecutor.h" +#include "OnLoad.h" #ifdef WITH_FBSYSTRACE #include @@ -747,6 +748,10 @@ static void createProxyExecutor(JNIEnv *env, jobject obj, jobject executorInstan } +jmethodID getLogMarkerMethod() { + return bridge::gLogMarkerMethod; +} + extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) { return initialize(vm, [] { // get the current env diff --git a/ReactAndroid/src/main/jni/react/jni/OnLoad.h b/ReactAndroid/src/main/jni/react/jni/OnLoad.h new file mode 100644 index 0000000000..9da83c447b --- /dev/null +++ b/ReactAndroid/src/main/jni/react/jni/OnLoad.h @@ -0,0 +1,13 @@ +// Copyright 2004-present Facebook. All Rights Reserved. + +#pragma once + +#include + +namespace facebook { +namespace react { + +jmethodID getLogMarkerMethod(); + +} // namespace react +} // namespace facebook