mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Clean up uneeded "duration" parameter from the Performance.mark API (#36997)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/36997 I've noticed that `Performance.mark`, for some reason, has been using an explicit `duration` parameter throughout, whereas it doesn't really make sense - neither from the web standard perspective, nor in general. Changelog: [Internal] Reviewed By: rubennorte Differential Revision: D45141978 fbshipit-source-id: ce3d149401249882f673c4bb6727eb1560469fa3
This commit is contained in:
committed by
Facebook GitHub Bot
parent
244c9ff549
commit
dec8562494
@@ -28,9 +28,8 @@ NativePerformance::NativePerformance(std::shared_ptr<CallInvoker> jsInvoker)
|
||||
void NativePerformance::mark(
|
||||
jsi::Runtime &rt,
|
||||
std::string name,
|
||||
double startTime,
|
||||
double duration) {
|
||||
PerformanceEntryReporter::getInstance().mark(name, startTime, duration);
|
||||
double startTime) {
|
||||
PerformanceEntryReporter::getInstance().mark(name, startTime);
|
||||
}
|
||||
|
||||
void NativePerformance::measure(
|
||||
|
||||
@@ -41,8 +41,7 @@ class NativePerformance : public NativePerformanceCxxSpec<NativePerformance>,
|
||||
public:
|
||||
NativePerformance(std::shared_ptr<CallInvoker> jsInvoker);
|
||||
|
||||
void
|
||||
mark(jsi::Runtime &rt, std::string name, double startTime, double duration);
|
||||
void mark(jsi::Runtime &rt, std::string name, double startTime);
|
||||
|
||||
void measure(
|
||||
jsi::Runtime &rt,
|
||||
|
||||
@@ -22,7 +22,7 @@ export type ReactNativeStartupTiming = {|
|
||||
|};
|
||||
|
||||
export interface Spec extends TurboModule {
|
||||
+mark: (name: string, startTime: number, duration: number) => void;
|
||||
+mark: (name: string, startTime: number) => void;
|
||||
+measure: (
|
||||
name: string,
|
||||
startTime: number,
|
||||
|
||||
@@ -157,7 +157,7 @@ export default class Performance {
|
||||
const mark = new PerformanceMark(markName, markOptions);
|
||||
|
||||
if (NativePerformance?.mark) {
|
||||
NativePerformance.mark(markName, mark.startTime, mark.duration);
|
||||
NativePerformance.mark(markName, mark.startTime);
|
||||
} else {
|
||||
warnNoNativePerformance();
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
namespace facebook::react {
|
||||
EventTag PerformanceEntryReporter::sCurrentEventTag_{0};
|
||||
|
||||
static inline double getCurrentTimeStamp() {
|
||||
return JSExecutor::performanceNow();
|
||||
}
|
||||
|
||||
PerformanceEntryReporter &PerformanceEntryReporter::getInstance() {
|
||||
static PerformanceEntryReporter instance;
|
||||
return instance;
|
||||
@@ -134,13 +138,12 @@ void PerformanceEntryReporter::logEntry(const RawPerformanceEntry &entry) {
|
||||
|
||||
void PerformanceEntryReporter::mark(
|
||||
const std::string &name,
|
||||
double startTime,
|
||||
double duration) {
|
||||
const std::optional<double> &startTime) {
|
||||
logEntry(RawPerformanceEntry{
|
||||
name,
|
||||
static_cast<int>(PerformanceEntryType::MARK),
|
||||
startTime,
|
||||
duration,
|
||||
startTime ? *startTime : getCurrentTimeStamp(),
|
||||
0.0,
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt});
|
||||
@@ -352,7 +355,7 @@ EventTag PerformanceEntryReporter::onEventStart(const char *name) {
|
||||
sCurrentEventTag_ = 1;
|
||||
}
|
||||
|
||||
auto timeStamp = JSExecutor::performanceNow();
|
||||
auto timeStamp = getCurrentTimeStamp();
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(eventsInFlightMutex_);
|
||||
eventsInFlight_.emplace(std::make_pair(
|
||||
@@ -365,7 +368,7 @@ void PerformanceEntryReporter::onEventDispatch(EventTag tag) {
|
||||
if (!isReporting(PerformanceEntryType::EVENT) || tag == 0) {
|
||||
return;
|
||||
}
|
||||
auto timeStamp = JSExecutor::performanceNow();
|
||||
auto timeStamp = getCurrentTimeStamp();
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(eventsInFlightMutex_);
|
||||
auto it = eventsInFlight_.find(tag);
|
||||
@@ -379,7 +382,7 @@ void PerformanceEntryReporter::onEventEnd(EventTag tag) {
|
||||
if (!isReporting(PerformanceEntryType::EVENT) || tag == 0) {
|
||||
return;
|
||||
}
|
||||
auto timeStamp = JSExecutor::performanceNow();
|
||||
auto timeStamp = getCurrentTimeStamp();
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(eventsInFlightMutex_);
|
||||
auto it = eventsInFlight_.find(tag);
|
||||
|
||||
@@ -111,7 +111,9 @@ class PerformanceEntryReporter : public EventLogger {
|
||||
return droppedEntryCount_;
|
||||
}
|
||||
|
||||
void mark(const std::string &name, double startTime, double duration);
|
||||
void mark(
|
||||
const std::string &name,
|
||||
const std::optional<double> &startTime = std::nullopt);
|
||||
|
||||
void measure(
|
||||
const std::string &name,
|
||||
|
||||
+2
-2
@@ -20,12 +20,12 @@ import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry';
|
||||
const marks: Map<string, number> = new Map();
|
||||
|
||||
const NativePerformanceMock: NativePerformance = {
|
||||
mark: (name: string, startTime: number, duration: number): void => {
|
||||
mark: (name: string, startTime: number): void => {
|
||||
NativePerformanceObserver?.logRawEntry({
|
||||
name,
|
||||
entryType: RawPerformanceEntryTypeValues.MARK,
|
||||
startTime,
|
||||
duration,
|
||||
duration: 0,
|
||||
});
|
||||
marks.set(name, startTime);
|
||||
},
|
||||
|
||||
+28
-28
@@ -54,9 +54,9 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestStopReporting) {
|
||||
|
||||
reporter.startReporting(PerformanceEntryType::MARK);
|
||||
|
||||
reporter.mark("mark0", 0.0, 0.0);
|
||||
reporter.mark("mark1", 0.0, 0.0);
|
||||
reporter.mark("mark2", 0.0, 0.0);
|
||||
reporter.mark("mark0", 0.0);
|
||||
reporter.mark("mark1", 0.0);
|
||||
reporter.mark("mark2", 0.0);
|
||||
reporter.measure("measure0", 0.0, 0.0);
|
||||
|
||||
auto res = reporter.popPendingEntries();
|
||||
@@ -73,7 +73,7 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestStopReporting) {
|
||||
reporter.stopReporting(PerformanceEntryType::MARK);
|
||||
reporter.startReporting(PerformanceEntryType::MEASURE);
|
||||
|
||||
reporter.mark("mark3", 0.0, 0.0);
|
||||
reporter.mark("mark3");
|
||||
reporter.measure("measure1", 0.0, 0.0);
|
||||
|
||||
res = reporter.popPendingEntries();
|
||||
@@ -91,9 +91,9 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestReportMarks) {
|
||||
|
||||
reporter.startReporting(PerformanceEntryType::MARK);
|
||||
|
||||
reporter.mark("mark0", 0.0, 1.0);
|
||||
reporter.mark("mark1", 1.0, 3.0);
|
||||
reporter.mark("mark2", 2.0, 4.0);
|
||||
reporter.mark("mark0", 0.0);
|
||||
reporter.mark("mark1", 1.0);
|
||||
reporter.mark("mark2", 2.0);
|
||||
|
||||
auto res = reporter.popPendingEntries();
|
||||
const auto &entries = res.entries;
|
||||
@@ -105,21 +105,21 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestReportMarks) {
|
||||
{"mark0",
|
||||
static_cast<int>(PerformanceEntryType::MARK),
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt},
|
||||
{"mark1",
|
||||
static_cast<int>(PerformanceEntryType::MARK),
|
||||
1.0,
|
||||
3.0,
|
||||
0.0,
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt},
|
||||
{"mark2",
|
||||
static_cast<int>(PerformanceEntryType::MARK),
|
||||
2.0,
|
||||
4.0,
|
||||
0.0,
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt}};
|
||||
@@ -136,9 +136,9 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestReportMeasures) {
|
||||
reporter.startReporting(PerformanceEntryType::MARK);
|
||||
reporter.startReporting(PerformanceEntryType::MEASURE);
|
||||
|
||||
reporter.mark("mark0", 0.0, 1.0);
|
||||
reporter.mark("mark1", 1.0, 3.0);
|
||||
reporter.mark("mark2", 2.0, 4.0);
|
||||
reporter.mark("mark0", 0.0);
|
||||
reporter.mark("mark1", 1.0);
|
||||
reporter.mark("mark2", 2.0);
|
||||
|
||||
reporter.measure("measure0", 0.0, 2.0);
|
||||
reporter.measure("measure1", 0.0, 2.0, 4.0);
|
||||
@@ -155,7 +155,7 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestReportMeasures) {
|
||||
{"mark0",
|
||||
static_cast<int>(PerformanceEntryType::MARK),
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt},
|
||||
@@ -173,6 +173,13 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestReportMeasures) {
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt},
|
||||
{"mark1",
|
||||
static_cast<int>(PerformanceEntryType::MARK),
|
||||
1.0,
|
||||
0.0,
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt},
|
||||
{"measure2",
|
||||
static_cast<int>(PerformanceEntryType::MEASURE),
|
||||
1.0,
|
||||
@@ -180,13 +187,6 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestReportMeasures) {
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt},
|
||||
{"mark1",
|
||||
static_cast<int>(PerformanceEntryType::MARK),
|
||||
1.0,
|
||||
3.0,
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt},
|
||||
{"measure3",
|
||||
static_cast<int>(PerformanceEntryType::MEASURE),
|
||||
1.0,
|
||||
@@ -204,7 +204,7 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestReportMeasures) {
|
||||
{"mark2",
|
||||
static_cast<int>(PerformanceEntryType::MARK),
|
||||
2.0,
|
||||
4.0,
|
||||
0.0,
|
||||
std::nullopt,
|
||||
std::nullopt,
|
||||
std::nullopt}};
|
||||
@@ -249,9 +249,9 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestGetEntries) {
|
||||
reporter.startReporting(PerformanceEntryType::MARK);
|
||||
reporter.startReporting(PerformanceEntryType::MEASURE);
|
||||
|
||||
reporter.mark("common_name", 0.0, 1.0);
|
||||
reporter.mark("mark1", 1.0, 3.0);
|
||||
reporter.mark("mark2", 2.0, 4.0);
|
||||
reporter.mark("common_name", 0.0);
|
||||
reporter.mark("mark1", 1.0);
|
||||
reporter.mark("mark2", 2.0);
|
||||
|
||||
reporter.measure("common_name", 0.0, 2.0);
|
||||
reporter.measure("measure1", 0.0, 2.0, 4.0);
|
||||
@@ -296,9 +296,9 @@ TEST(PerformanceEntryReporter, PerformanceEntryReporterTestClearEntries) {
|
||||
reporter.startReporting(PerformanceEntryType::MARK);
|
||||
reporter.startReporting(PerformanceEntryType::MEASURE);
|
||||
|
||||
reporter.mark("common_name", 0.0, 1.0);
|
||||
reporter.mark("mark1", 1.0, 3.0);
|
||||
reporter.mark("mark2", 2.0, 4.0);
|
||||
reporter.mark("common_name", 0.0);
|
||||
reporter.mark("mark1", 1.0);
|
||||
reporter.mark("mark2", 2.0);
|
||||
|
||||
reporter.measure("common_name", 0.0, 2.0);
|
||||
reporter.measure("measure1", 0.0, 2.0, 4.0);
|
||||
|
||||
Reference in New Issue
Block a user