hrtime-decorator

1.0.3 • Public • Published

Timer Decorator

Decorate any function to produce simple, high resolution logs of the time it took to complete the function.

  • uses node's process.hrtime
  • emits duration reports so you can time multiple processes at once
  • automatically averages durations
  • inject a custom logger

This is for testing only, not for production!

Example


var timer = require('timer-decorator');

myFunction = timer(myFunction, 'customName');

for (var k = 10; k > 0; k--) {
  myFunction();
}


// [TIMER] "customName"	0.096919ms	(0.096919 avg)
// [TIMER] "customName"	0.009224ms	(0.0530715 avg)
// [TIMER] "customName"	0.010581ms	(0.038908 avg)
// [TIMER] "customName"	0.011152ms	(0.031969 avg)
// [TIMER] "customName"	0.012558ms	(0.028086800000000002 avg)
// [TIMER] "customName"	0.011086ms	(0.025253333333333336 avg)
// [TIMER] "customName"	0.006635ms	(0.02259357142857143 avg)
// [TIMER] "customName"	0.012483ms	(0.02132975 avg)
// [TIMER] "customName"	0.011924ms	(0.020284666666666666 avg)

Use custom logger

function myCustomLogger (msg) {
  console.log(msg.toUpperCase());
}

timer.reporter.setLogger(myCustomLogger);

TODO:

  • better tests
  • investigate safeguard against memory leak in the decorator's store array

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.3
    1
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.3
    1
  • 1.0.2
    1

Package Sidebar

Install

npm i hrtime-decorator

Weekly Downloads

2

Version

1.0.3

License

ISC

Last publish

Collaborators

  • walker.malling