@jf/chrono
v1.0.0
Published
Simple class for using chronometers and timers in applications.
Maintainers
Readme
jfChrono 
Simple class for using chronometers and timers in applications.
Usage
Examples
Getting AJAX request time for stats
const jfChrono = require('jf-chrono');
const chrono = new jfChrono();
ajax.on(
'end',
() => {
chrono.stop();
console.log('Request time (ms): %d', chrono.getTime())
}
);
chrono.start();
ajax.doRequest();Timers
Timer can be stopped and resumed using methods startTimer and stopTimer.
const jfChrono = require('jf-chrono');
let count = 1;
function timer()
{
console.log('Doing action %s', count);
chrono.startTimer(
1000,
(chrono) => {
const _time = chrono.getTime();
// 5s
if (_time > 5000)
{
onEndTimer(chrono);
}
}
);
}
function onEndTimer(chrono)
{
chrono.stopTimer();
if (++count < 5)
{
timer();
}
else
{
console.log('Total time: %d', chrono.getTime());
}
}
const chrono = new jfChrono();
chrono.start();
timer();Timing actions
You can use several timers if you want to create reports of all actions taken.
function showStats()
{
console.log('Parsing time: %d', jfChrono.create('parse').getTime());
console.log('Analyzing time: %d', jfChrono.create('analyze').getTime());
console.log('Reporting time: %d', jfChrono.create('report').getTime());
console.log('Total time: %d', jfChrono.create('process').getTime());
}
const jfChrono = require('jf-chrono');
jfChrono.create('process').start();
// Preparing actions
jfChrono.create('parse').start();
// Parse files
// ...
// ...
jfChrono.create('parse').stop();
jfChrono.create('analyze').start();
// Analyze files
// ...
// ...
jfChrono.create('analyze').stop();
jfChrono.create('report').start();
// Creating reports
// ...
// ...
jfChrono.create('report').stop();
jfChrono.create('process').stop();
// ...
showStats();
