Files
react-native/Libraries/Performance/QuickPerformanceLogger.js
T
Mark Bridges aa98978302 Adding metadata to React Native QPL points
Summary:
Changelog:
[General][Added] - Added data field to markerPoint to allow callers to add additional arbitrary string data to logged points

Reviewed By: dmitry-voronkevich

Differential Revision: D29764274

fbshipit-source-id: b0d21e3b20a5353351424afb10c950f3e8689887
2021-07-21 10:34:27 -07:00

102 lines
2.3 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow strict
*/
'use strict';
const AUTO_SET_TIMESTAMP = -1;
const DUMMY_INSTANCE_KEY = 0;
const QuickPerformanceLogger = {
markerStart(
markerId: number,
instanceKey: number = DUMMY_INSTANCE_KEY,
timestamp: number = AUTO_SET_TIMESTAMP,
): void {
if (global.nativeQPLMarkerStart) {
global.nativeQPLMarkerStart(markerId, instanceKey, timestamp);
}
},
markerEnd(
markerId: number,
actionId: number,
instanceKey: number = DUMMY_INSTANCE_KEY,
timestamp: number = AUTO_SET_TIMESTAMP,
): void {
if (global.nativeQPLMarkerEnd) {
global.nativeQPLMarkerEnd(markerId, instanceKey, actionId, timestamp);
}
},
markerTag(
markerId: number,
tag: string,
instanceKey: number = DUMMY_INSTANCE_KEY,
): void {
if (global.nativeQPLMarkerTag) {
global.nativeQPLMarkerTag(markerId, instanceKey, tag);
}
},
markerAnnotate(
markerId: number,
annotationKey: string,
annotationValue: string,
instanceKey: number = DUMMY_INSTANCE_KEY,
): void {
if (global.nativeQPLMarkerAnnotate) {
global.nativeQPLMarkerAnnotate(
markerId,
instanceKey,
annotationKey,
annotationValue,
);
}
},
markerCancel(
markerId: number,
instanceKey?: number = DUMMY_INSTANCE_KEY,
): void {
// $FlowFixMe[object-this-reference]
this.markerDrop(markerId, instanceKey);
},
markerPoint(
markerId: number,
name: string,
instanceKey: number = DUMMY_INSTANCE_KEY,
timestamp: number = AUTO_SET_TIMESTAMP,
data: ?string = null,
): void {
if (global.nativeQPLMarkerPoint) {
global.nativeQPLMarkerPoint(markerId, name, instanceKey, timestamp, data);
}
},
markerDrop(
markerId: number,
instanceKey?: number = DUMMY_INSTANCE_KEY,
): void {
if (global.nativeQPLMarkerDrop) {
global.nativeQPLMarkerDrop(markerId, instanceKey);
}
},
currentTimestamp(): number {
if (global.nativeQPLTimestamp) {
return global.nativeQPLTimestamp();
}
return 0;
},
};
module.exports = QuickPerformanceLogger;