- v{{version}}
clinic bubbleprof helps you find asynchronous bottlenecks and debug event loop blocking.
To run clinic bubbleprof
clinic bubbleprof -- node server.js
Once you exit (Ctrl-C) the process, your report will open in a browser window. You can disable this behavior:
clinic bubbleprof --open=false -- node server.js
If profiling on a server, it can be useful to only do data collection:
clinic bubbleprof --collect-only -- node server.js
You can then transfer the data and visualize it locally:
clinic bubbleprof --visualize-only PID.clinic-bubbleprof-sample
You can use the --autocannon flag to simulate load on your server.
--autocannon accepts configuration for autocannon using "subarg" syntax:
clinic bubbleprof --autocannon [ -m POST /api/example ] -- node server.js
When configuring --autocannon, the $PORT environment variable contains the
port your server is listening on:
clinic bubbleprof --autocannon [ -m POST 'http://localhost:$PORT/?\$page=1' ] -- node server.js
Note that dollar signs (`$`) appearing in the URL must be escaped (`\$`), else they
will be treated as environment variables as well.
.clinic/).
--stop-delay Add a delay to close the process when a job is done through either `autocannon` or `on-port` flag (milliseconds)
--name The --name flag sets a name for the output data, allowing you to replace existing reports without generating new ones. Example: .clinic/node-19-test.clinic-flame