A Node.js application profiling tool.
This is a simple Node.js profiling tool. Use it like this. First add it to your project.
$ npm install genet -S
Then start profiling. Put this somewhere in your app. Probably near the start.
const Genet = require('genet');
const profile = new Genet();
profile.start();
When requiring the genet
module, the module exports the Genet
object's
constructor function.
// Genet is a constructor function
const Genet = require('genet');
var profile = new Genet();
Creates a new profiler. Several options are allowed.
options.profileName
{string} - The profile name provided tov8-profiler
. Defaults to'genet'
.options.outputFile
{string} - The output file name. Defaults to./prof-${Date.now()}.cpuprofile
.options.duration
{Number} - The number of milliseconds to run the profiler. Defaults to 5000.options.verbose
{boolean} - Determines how much log output you'll see. Defaults tofalse
.options.report
{boolean} - Whether or not to generate report output. Defaults totrue
.options.flamegraph
{boolean} - Determines whether to generate a flamegraph .svg file. Defaults tofalse
.options.filter
{RegExp|String} - An inclusive filter which determines what functions to include in the reports based on comparison with the path and filename for a given function.
Begins profiling the application. The profiler will run until options.duration
milliseconds
have elapsed, and then generate reports.
Stops profiling the application. If the profiler has already been stopped, this function
does nothing. If the profiler is still running, it cancels the timeout set by options.duration
and then stops the profiler. This function returns a promise that resolves when the
profiler has stopped.
By default, genet
will generate a report to the console, and to a file. Using the
flamegraph
option, you can also generate a flamegraph as an .svg
file.
Console output will look something like this.
The flamegraph SVG might look something like this.
Please read the contributing guide