Skip to content

isabella232/buffer-js-chronos

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chronos

A small library to handle browser timining measures

How To

install it

npm i --save @bufferapp/chronos
import chronos from '@bufferapp/chronos';
const ch = chronos();

The simplest way to measure something is to start the measure with ch.startMeasure('bar') and then stop it ch.stopMeasure('bar'). To store the measure you should define a storing method when you instatiate Chronos passing it down in the configuration options

const ch = chronos({
  store: (data) => {
    …
  }
})

When that is provided Chronos will auto save the measures for you. Chronos is using requestIdleCallback to parse and store measures, so autosave won't effect your app performances, anyway you are free to disable this behaviour setting autoSave: false in the options. In this case you can manually save measures with ch.saveToStore().

You can measure anything against browser timing event with ch.measureFromSpecialEvent({ name: 'foo', eventName: 'navigationStart' }), there is also a convenient method to measure against Navigation Start ch.measureFromNavigationStart('foo').

If you want to store any extra data along with your measures you can pass a data object in measure start options ch.startMeasure({name: 'foo', data: {tags: ['foo', 'bar']}}), the data field will be passed down to your store method.

Happy measuring!

About

A small library to handle browsers timing api

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%