Files
CHOMPStation2/tgui/packages/common/perf.js
ShadowLarkens 2992efb823 TGUI v4.0
2020-07-17 22:09:26 -07:00

45 lines
962 B
JavaScript

/**
* Ghetto performance measurement tools.
*
* Uses NODE_ENV to redact itself from production bundles.
*
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
*/
let markersByLabel = {};
/**
* Marks a certain spot in the code for later measurements.
*/
const mark = (label, timestamp) => {
if (process.env.NODE_ENV !== 'production') {
markersByLabel[label] = timestamp || Date.now();
}
};
/**
* Calculates and returns the difference between two markers as a string.
*
* Use logger.log() to print the measurement.
*/
const measure = (markerA, markerB) => {
if (process.env.NODE_ENV !== 'production') {
return timeDiff(
markersByLabel[markerA],
markersByLabel[markerB]);
}
};
const timeDiff = (startedAt, finishedAt) => {
const diff = Math.abs(finishedAt - startedAt);
const diffFrames = (diff / 16.6667).toFixed(2);
return `${diff}ms (${diffFrames} frames)`;
};
export const perf = {
mark,
measure,
};