Skip to content

Instantly share code, notes, and snippets.

@romellem
Last active July 27, 2022 15:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save romellem/65565387d612fd2836b48e6fe9e97c5d to your computer and use it in GitHub Desktop.
Save romellem/65565387d612fd2836b48e6fe9e97c5d to your computer and use it in GitHub Desktop.
NodeJS Measure Execution Time
/**
* @param {String} [str]
*/
const logTime = (() => {
let hrstart, hrend;
return str => {
if (hrstart === undefined) {
hrstart = process.hrtime();
return;
}
hrend = process.hrtime(hrstart);
console.info((str === undefined ? '' : `${str} - `) + '%ds %dms', hrend[0], hrend[1] / 1000000);
hrstart = process.hrtime();
};
})();
function test() {
// Start timer
logTime();
let sum = 0;
for (let i = 0; i < 1e6; i++) {
sum += Math.random();
}
// Ending first timer, also serves as start for next log
logTime('Label 1');
sum = 0;
for (let i = 0; i < 1e9; i++) {
sum += Math.random();
}
// Uses `Label 1` timer as start
logTime('Label 2');
}
test(); // Logs:
//
// Label 1 - 0s 12.12315ms
// Label 2 - 8s 184.500578ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment