Skip to content

Get high-resolution durations of fucntion execution via decorator

Notifications You must be signed in to change notification settings

walkermalling/timer-decorator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Timer Decorator

Decorate any function to produce simple, high resolution logs of execution duration.

bullet points

  • 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

About

Get high-resolution durations of fucntion execution via decorator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published