Record time spent on GC in high resolution
npm install gctime> Record time spent on GC in high resolution.
> Yields a statistic set with min, max and sum of duration and size (number of cycles).






Continuously log GC cycles and duration:
``js
const gctime = require('gctime')
const nano = require('nanoseconds')
const diffy = require('diffy')()
const fmt = require('util').format
const stats = gctime.get()
diffy.render(function () {
// Update stats. Alternatively call .get() to get a new object.
gctime.accumulate(stats)
return fmt(
'cycles: %d. min: %dns. max: %dns. avg: %dns',
stats.size,
nano(stats.min),
nano(stats.max),
nano(stats.sum) / stats.size | 0
)
})
gctime.start()
setInterval(() => Array(1e6).fill(1), 100)
setInterval(() => diffy.render(), 500)
`
``
$ node example.js
cycles: 174. min: 45488ns. max: 843813ns. avg: 131384ns
When you're done, call gctime.stop(). For a single run, you can skip get() as stop() returns stats too: stats = gctime.stop().
The statistics follow the format of process.hrtime(): an array of [seconds, nanoseconds] where nanoseconds is the remaining part of the time that can't be represented in second precision.
The state of start(), get() and stop() is global. They throw if already started or stopped, respectively.
With npm do:
```
npm install gctime
MIT © 2017-present Vincent Weevers. Contains 8 lines of code from Node.js © many people.