A small library to handle browser timining measures


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
00Aug 19, 2017Jan 6, 2017Minified + gzip package size for @bufferapp/chronos in KB



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!

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.