nanotiming
Small timing library. Useful to integrate into libraries that have multiple
methods. Only works in the browser, does nothing in Node.
Usage
var nanotiming = require('nanotiming')
var loopTiming = nanotiming('my-timing.my-loop')
var i = 1000
while (--i) console.log(i)
loopTiming()
window.requestIdleCallback(function () {
var timings = window.performance.getEntries()
var timing = timings[timings.length - 1]
console.log(timing.name, timing.duration)
performance.clearMeasures(timing.name)
})
Timing names
Timings inside the view are appended with a unique UUID so they can be cleared
individually. While there's no strict format for timing formats, we recommend
using a format along these lines:
choo.render [12356778]
choo.route('/') [13355671]
choo.emit('log:debug') [13355675]
Disabling timings
Performance timers are still a somewhat experimental technology. While they're
a great idea conceptually, there might be bugs. To disable timings complete,
set:
window.localStorage.DISABLE_NANOTIMING = true
API
endTiming = nanotiming(name)
Start a new timing.
endTiming.uuid
The unique ID created for the timing.
endTiming([cb(name)])
Close the timing. Measuring the timing is done inside a requestIdleCallback()
tick, so it might not be available immediately. If a callback is passed it will
be called with the timing's name.
License
MIT