mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Add close() to IPerformanceLogger
Summary: To represent a final state where a logger should no longer be used Changelog: [Internal] - To represent a final state where a logger should no longer be used Reviewed By: rubennorte Differential Revision: D23845307 fbshipit-source-id: 4b2bfda4f7425ba6bc8e5e1233d9baea60dd8667
This commit is contained in:
committed by
Facebook GitHub Bot
parent
6d355c0abd
commit
aebb97b9c6
@@ -28,6 +28,40 @@ describe('PerformanceLogger', () => {
|
||||
beforeEach(() => {
|
||||
GlobalPerformanceLogger.clear();
|
||||
});
|
||||
describe('close() ', () => {
|
||||
let perfLogger;
|
||||
beforeEach(() => {
|
||||
perfLogger = createPerformanceLogger();
|
||||
});
|
||||
|
||||
it('does not markPoint', () => {
|
||||
perfLogger.close();
|
||||
perfLogger.markPoint(POINT, POINT_TIMESTAMP);
|
||||
expect(perfLogger.getPoints()).toEqual({});
|
||||
});
|
||||
it('does not startTimespan', () => {
|
||||
perfLogger.close();
|
||||
perfLogger.startTimespan(TIMESPAN_1);
|
||||
expect(perfLogger.getTimespans()).toEqual({});
|
||||
});
|
||||
it('does not setExtra', () => {
|
||||
perfLogger.close();
|
||||
perfLogger.setExtra('extra', 'an extra value');
|
||||
expect(perfLogger.getTimespans()).toEqual({});
|
||||
});
|
||||
|
||||
it('does not stopTimespan', () => {
|
||||
perfLogger.startTimespan(TIMESPAN_1);
|
||||
perfLogger.close();
|
||||
let timespan = perfLogger.getTimespans()[TIMESPAN_1];
|
||||
expect(timespan.endTime).toBeUndefined();
|
||||
expect(timespan.totalTime).toBeUndefined();
|
||||
perfLogger.stopTimespan(TIMESPAN_1);
|
||||
timespan = perfLogger.getTimespans()[TIMESPAN_1];
|
||||
expect(timespan.endTime).toBeUndefined();
|
||||
expect(timespan.totalTime).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
it('starts & stops a timespan', () => {
|
||||
let perfLogger = createPerformanceLogger();
|
||||
|
||||
@@ -39,12 +39,14 @@ export interface IPerformanceLogger {
|
||||
): void;
|
||||
clear(): void;
|
||||
clearCompleted(): void;
|
||||
close(): void;
|
||||
currentTimestamp(): number;
|
||||
getExtras(): {[key: string]: ExtraValue, ...};
|
||||
getPoints(): {[key: string]: number, ...};
|
||||
getPointExtras(): {[key: string]: Extras, ...};
|
||||
getTimespans(): {[key: string]: Timespan, ...};
|
||||
hasTimespan(key: string): boolean;
|
||||
isClosed(): boolean;
|
||||
logEverything(): void;
|
||||
markPoint(key: string, timestamp?: number, extras?: Extras): void;
|
||||
removeExtra(key: string): ExtraValue | void;
|
||||
@@ -62,6 +64,7 @@ class PerformanceLogger implements IPerformanceLogger {
|
||||
_extras: {[key: string]: ExtraValue} = {};
|
||||
_points: {[key: string]: number} = {};
|
||||
_pointExtras: {[key: string]: Extras, ...} = {};
|
||||
_closed: boolean = false;
|
||||
|
||||
addTimespan(
|
||||
key: string,
|
||||
@@ -70,6 +73,12 @@ class PerformanceLogger implements IPerformanceLogger {
|
||||
startExtras?: Extras,
|
||||
endExtras?: Extras,
|
||||
) {
|
||||
if (this._closed) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
infoLog('PerformanceLogger: addTimespan - has closed ignoring: ', key);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (this._timespans[key]) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
infoLog(
|
||||
@@ -111,6 +120,10 @@ class PerformanceLogger implements IPerformanceLogger {
|
||||
}
|
||||
}
|
||||
|
||||
close() {
|
||||
this._closed = true;
|
||||
}
|
||||
|
||||
currentTimestamp() {
|
||||
return performanceNow();
|
||||
}
|
||||
@@ -135,6 +148,10 @@ class PerformanceLogger implements IPerformanceLogger {
|
||||
return !!this._timespans[key];
|
||||
}
|
||||
|
||||
isClosed() {
|
||||
return this._closed;
|
||||
}
|
||||
|
||||
logEverything() {
|
||||
if (PRINT_TO_CONSOLE) {
|
||||
// log timespans
|
||||
@@ -155,6 +172,12 @@ class PerformanceLogger implements IPerformanceLogger {
|
||||
}
|
||||
|
||||
markPoint(key: string, timestamp?: number, extras?: Extras) {
|
||||
if (this._closed) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
infoLog('PerformanceLogger: markPoint - has closed ignoring: ', key);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (this._points[key]) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
infoLog(
|
||||
@@ -177,6 +200,13 @@ class PerformanceLogger implements IPerformanceLogger {
|
||||
}
|
||||
|
||||
setExtra(key: string, value: ExtraValue) {
|
||||
if (this._closed) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
infoLog('PerformanceLogger: setExtra - has closed ignoring: ', key);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (this._extras.hasOwnProperty(key)) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
infoLog(
|
||||
@@ -190,6 +220,16 @@ class PerformanceLogger implements IPerformanceLogger {
|
||||
}
|
||||
|
||||
startTimespan(key: string, extras?: Extras) {
|
||||
if (this._closed) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
infoLog(
|
||||
'PerformanceLogger: startTimespan - has closed ignoring: ',
|
||||
key,
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (this._timespans[key]) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
infoLog(
|
||||
@@ -211,6 +251,13 @@ class PerformanceLogger implements IPerformanceLogger {
|
||||
}
|
||||
|
||||
stopTimespan(key: string, extras?: Extras) {
|
||||
if (this._closed) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
infoLog('PerformanceLogger: stopTimespan - has closed ignoring: ', key);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const timespan = this._timespans[key];
|
||||
if (!timespan || timespan.startTime == null) {
|
||||
if (PRINT_TO_CONSOLE && __DEV__) {
|
||||
|
||||
Reference in New Issue
Block a user