A Node process that feels instant on your laptop with one user can collapse at fifty. The reasons are usually boring: a file read on every request, a JSON document parsed a thousand times a second, a database round trip that could have been answered from memory, a single process using one of eighteen cores. None of those are language problems, and none are found by reading code. They are found by measuring.
Every measurement printed here came from the machine used throughout this chapter: an 18-core, 36-thread Intel Core i9-7980XE running Windows 11 and Node.js 25.8.0 2,131 , with the load generator and the server sharing it. Absolute numbers on your hardware will differ; the ratios between runs transfer.
