- v{{version}}
clinic doctor is the first step in profiling your application.
It will show you what kind of problem you are having and recommend the path
forward.
To run clinic doctor
clinic doctor -- node server.js
Once you exit (Ctrl-C) the process, your report will open in a browser window. You can disable this behavior:
clinic doctor --open=false -- node server.js
If profiling on a server, it can be useful to only do data collection:
clinic doctor --collect-only -- node server.js
You can then transfer the data and visualize it locally:
clinic doctor --visualize-only PID.clinic-doctor-sample
You can use the --autocannon flag to simulate load on your server.
--autocannon accepts configuration for autocannon using "subarg" syntax:
clinic doctor --autocannon [ -m POST /api/example ] -- node server.js
When configuring --autocannon, the $PORT environment variable contains the
port your server is listening on:
clinic doctor --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