mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Remove Fusebox calls from ReactPerfLogger, rename (1/2) (#48044)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/48044 Updates `ReactPerfLogger` (now renamed `ReactPerfettoLogger`) to log to Perfetto only. This precedes integrating `FuseboxTracer` calls into `PerformanceEntryReporter` for User Timing events and Interaction events. Changelog: [Internal] Reviewed By: rubennorte Differential Revision: D66600278 fbshipit-source-id: f250f6b018d091d740bb13d5fcce9b716c4a6f72
This commit is contained in:
committed by
Facebook GitHub Bot
parent
79ed11f8f4
commit
59969b6135
@@ -11,7 +11,9 @@
|
||||
|
||||
#include <folly/Conv.h>
|
||||
#include <jsinspector-modern/ReactCdp.h>
|
||||
#include <reactperflogger/ReactPerfLogger.h>
|
||||
#include <react/timing/primitives.h>
|
||||
|
||||
#include <chrono>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
@@ -25,7 +27,7 @@ std::string JSExecutor::getSyntheticBundlePath(
|
||||
}
|
||||
|
||||
double JSExecutor::performanceNow() {
|
||||
return ReactPerfLogger::performanceNow();
|
||||
return chronoToDOMHighResTimeStamp(std::chrono::steady_clock::now());
|
||||
}
|
||||
|
||||
jsinspector_modern::RuntimeTargetDelegate&
|
||||
|
||||
+3
-3
@@ -16,7 +16,7 @@
|
||||
#include <jsi/instrumentation.h>
|
||||
#include <react/performance/timeline/PerformanceEntryReporter.h>
|
||||
#include <react/performance/timeline/PerformanceObserver.h>
|
||||
#include <reactperflogger/ReactPerfLogger.h>
|
||||
#include <reactperflogger/ReactPerfettoLogger.h>
|
||||
|
||||
#include "NativePerformance.h"
|
||||
|
||||
@@ -120,7 +120,7 @@ double NativePerformance::markWithResult(
|
||||
auto entry =
|
||||
PerformanceEntryReporter::getInstance()->reportMark(name, startTime);
|
||||
|
||||
ReactPerfLogger::mark(eventName, entry.startTime, trackName);
|
||||
ReactPerfettoLogger::mark(eventName, entry.startTime, trackName);
|
||||
|
||||
return entry.startTime;
|
||||
}
|
||||
@@ -138,7 +138,7 @@ std::tuple<double, double> NativePerformance::measureWithResult(
|
||||
auto entry = PerformanceEntryReporter::getInstance()->reportMeasure(
|
||||
eventName, startTime, endTime, duration, startMark, endMark);
|
||||
|
||||
ReactPerfLogger::measure(
|
||||
ReactPerfettoLogger::measure(
|
||||
eventName, entry.startTime, entry.startTime + entry.duration, trackName);
|
||||
|
||||
return std::tuple{entry.startTime, entry.duration};
|
||||
|
||||
+3
@@ -138,6 +138,7 @@ PerformanceEntry PerformanceEntryReporter::reportMark(
|
||||
markBuffer_.add(entry);
|
||||
}
|
||||
|
||||
// TODO(T198982317): Log `performance.mark()` events to jsinspector_modern
|
||||
observerRegistry_->queuePerformanceEntry(entry);
|
||||
return entry;
|
||||
}
|
||||
@@ -173,6 +174,7 @@ PerformanceEntry PerformanceEntryReporter::reportMeasure(
|
||||
measureBuffer_.add(entry);
|
||||
}
|
||||
|
||||
// TODO(T198982317): Log `performance.measure()` events to jsinspector_modern
|
||||
observerRegistry_->queuePerformanceEntry(entry);
|
||||
return entry;
|
||||
}
|
||||
@@ -217,6 +219,7 @@ void PerformanceEntryReporter::reportEvent(
|
||||
eventBuffer_.add(entry);
|
||||
}
|
||||
|
||||
// TODO(T198982346): Log interaction events to jsinspector_modern
|
||||
observerRegistry_->queuePerformanceEntry(entry);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,9 @@ struct BufferEvent {
|
||||
std::string track;
|
||||
};
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
class FuseboxTracer {
|
||||
public:
|
||||
FuseboxTracer(const FuseboxTracer&) = delete;
|
||||
|
||||
+3
-21
@@ -5,14 +5,7 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#include "ReactPerfLogger.h"
|
||||
|
||||
#include <react/timing/primitives.h>
|
||||
#if __has_include(<reactperflogger/fusebox/FuseboxTracer.h>)
|
||||
#include <reactperflogger/fusebox/FuseboxTracer.h>
|
||||
#define HAS_FUSEBOX
|
||||
#endif
|
||||
#include <chrono>
|
||||
#include "ReactPerfettoLogger.h"
|
||||
|
||||
#ifdef WITH_PERFETTO
|
||||
#include "ReactPerfetto.h"
|
||||
@@ -36,16 +29,11 @@ std::string toPerfettoTrackName(
|
||||
} // namespace
|
||||
#endif
|
||||
|
||||
/* static */ void ReactPerfLogger::measure(
|
||||
/* static */ void ReactPerfettoLogger::measure(
|
||||
const std::string_view& eventName,
|
||||
double startTime,
|
||||
double endTime,
|
||||
const std::optional<std::string_view>& trackName) {
|
||||
#ifdef HAS_FUSEBOX
|
||||
FuseboxTracer::getFuseboxTracer().addEvent(
|
||||
eventName, (uint64_t)startTime, (uint64_t)endTime, trackName);
|
||||
#endif
|
||||
|
||||
#ifdef WITH_PERFETTO
|
||||
if (TRACE_EVENT_CATEGORY_ENABLED("react-native")) {
|
||||
auto track = getPerfettoWebPerfTrackAsync(toPerfettoTrackName(trackName));
|
||||
@@ -60,12 +48,10 @@ std::string toPerfettoTrackName(
|
||||
#endif
|
||||
}
|
||||
|
||||
/* static */ void ReactPerfLogger::mark(
|
||||
/* static */ void ReactPerfettoLogger::mark(
|
||||
const std::string_view& eventName,
|
||||
double startTime,
|
||||
const std::optional<std::string_view>& trackName) {
|
||||
// TODO(T203046480) Support mark in FuseboxTracer
|
||||
|
||||
#ifdef WITH_PERFETTO
|
||||
if (TRACE_EVENT_CATEGORY_ENABLED("react-native")) {
|
||||
TRACE_EVENT_INSTANT(
|
||||
@@ -77,8 +63,4 @@ std::string toPerfettoTrackName(
|
||||
#endif
|
||||
}
|
||||
|
||||
/* static */ double ReactPerfLogger::performanceNow() {
|
||||
return chronoToDOMHighResTimeStamp(std::chrono::steady_clock::now());
|
||||
}
|
||||
|
||||
} // namespace facebook::react
|
||||
+3
-7
@@ -15,12 +15,10 @@
|
||||
namespace facebook::react {
|
||||
|
||||
/**
|
||||
* An internal interface for logging performance events to configured React
|
||||
* Native performance tools, such as Perfetto or React Native DevTools.
|
||||
*
|
||||
* Approximates https://w3c.github.io/user-timing/.
|
||||
* An internal interface for logging performance events to Perfetto, when
|
||||
* configured.
|
||||
*/
|
||||
class ReactPerfLogger {
|
||||
class ReactPerfettoLogger {
|
||||
public:
|
||||
static void mark(
|
||||
const std::string_view& eventName,
|
||||
@@ -32,8 +30,6 @@ class ReactPerfLogger {
|
||||
double startTime,
|
||||
double endTime,
|
||||
const std::optional<std::string_view>& trackName);
|
||||
|
||||
static double performanceNow();
|
||||
};
|
||||
|
||||
} // namespace facebook::react
|
||||
Reference in New Issue
Block a user