Profiling Node.js apps with Chrome DevTools profiler
July 5, 2024Profiling refers to analyzing and measuring an application's performance characteristics.
Profiling helps identify performance bottlenecks in a Node.js app, such as CPU-intensive tasks like cryptographic operations, image processing, or complex calculations.
This post covers running a profiler for various Node.js apps in Chrome DevTools.
Prerequisites
Google Chrome installed
Node.js app bootstrapped
Setup
Run
node --inspect app.js
to start the debugger.Open
chrome://inspect
, clickOpen dedicated DevTools for Node
and then navigate to the Performance tab. Start recording.Run load testing via autocannon package using the following command format
npx autocannon <COMMAND>
.Stop recording in Chrome DevTools.
Profiling
On Perfomance
tab in Chrome DevTools open Bottom-Up
subtab to identify which functions consume the most time.
Look for potential performance bottlenecks, such as synchronous functions for hashing (pbkdf2Sync
) or file system operations (readFileSync
).