aboutsummaryrefslogtreecommitdiff
path: root/node_modules/nanotiming/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/nanotiming/README.md')
-rw-r--r--node_modules/nanotiming/README.md85
1 files changed, 85 insertions, 0 deletions
diff --git a/node_modules/nanotiming/README.md b/node_modules/nanotiming/README.md
new file mode 100644
index 00000000..e02fd423
--- /dev/null
+++ b/node_modules/nanotiming/README.md
@@ -0,0 +1,85 @@
+# nanotiming [![stability][0]][1]
+[![npm version][2]][3] [![build status][4]][5]
+[![downloads][8]][9] [![js-standard-style][10]][11]
+
+Small timing library. Useful to integrate into libraries that have multiple
+methods. Works both in the browser and Node. To use this in Node, make sure you
+are using v8.5.0 or greater.
+
+## Usage
+```js
+var nanotiming = require('nanotiming')
+// require 'perf_hooks' for Node environment
+// var performance = require('perf_hooks').performance
+
+var timing = nanotiming('my-loop') // Start profiling
+
+var i = 1000
+while (--i) console.log(i)
+
+// Stop profiling
+timing()
+
+// in the browser
+var timings = window.performance.getEntries()
+var timing = timings[timings.length - 1]
+console.log(timing.name, timing.duration) // log the last entry
+window.performance.clearMeasures(timing.name) // be a good citizen and free after use
+
+// in Node
+var timings = performance.getEntries()
+var timing = timings[timings.length - 1]
+console.log(timing.name, timing.duration) // log the last entry
+performance.clearMeasures(timing.name) // be a good citizen and free after use
+```
+
+## 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:
+```txt
+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, in
+the browser set:
+```js
+window.localStorage.DISABLE_NANOTIMING = true
+```
+Alternatively, in Node set:
+```js
+process.env.DISABLE_NANOTIMING = true
+```
+
+## API
+### `endTiming = nanotiming(name)`
+Start a new timing.
+
+### `endTiming.uuid`
+The unique ID created for the timing.
+
+### `endTiming([cb(err, name)])`
+Close the timing. Measuring the timing is done inside a `requestIdleCallback()`
+(browser) or `setTimeout` (node) tick, so it might not be available
+immediately. If a callback is passed it will be called with an error (if
+measuring wasn't successful) and the timing's name.
+
+## License
+[MIT](https://tldrlegal.com/license/mit-license)
+
+[0]: https://img.shields.io/badge/stability-experimental-orange.svg?style=flat-square
+[1]: https://nodejs.org/api/documentation.html#documentation_stability_index
+[2]: https://img.shields.io/npm/v/nanotiming.svg?style=flat-square
+[3]: https://npmjs.org/package/nanotiming
+[4]: https://img.shields.io/travis/choojs/nanotiming/master.svg?style=flat-square
+[5]: https://travis-ci.org/choojs/nanotiming
+[6]: https://img.shields.io/codecov/c/github/choojs/nanotiming/master.svg?style=flat-square
+[7]: https://codecov.io/github/choojs/nanotiming
+[8]: http://img.shields.io/npm/dm/nanotiming.svg?style=flat-square
+[9]: https://npmjs.org/package/nanotiming
+[10]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
+[11]: https://github.com/feross/standard