The API Performance Profiler extension for Visual Studio Code places per-route latency figures beside your Express and NestJS-on-Express route definitions and adds a routes sidebar. The figures come from a companion middleware, @api-profiler/express, that runs inside your Node.js application. The extension does not measure your routes on its own.
This guide follows the workflow and limits described in the vendor’s Visual Studio Marketplace listing and npm package documentation as indexed in 2026. It has not been independently tested, so treat the defaults below as the tool’s own settings rather than established performance benchmarks.
As an Amazon Associate I earn from qualifying purchases.
How the two parts work together
The setup has two halves that must both be present:
- The VS Code extension (listed on the Marketplace as API Performance Profiler) reads your route definitions, shows latency inline, and provides the routes sidebar and load-test action.
- The
@api-profiler/expressmiddleware, published on npm at @api-profiler/express, observes requests as they pass through your running application. Without it, the editor has nothing to display.
The package documentation also describes a terminal CLI and a programmatic p.stats() interface. The extract available for this guide does not give their full syntax, so consult the npm page before relying on either.
#1 Best Overall
Setting it up in a project
- In the root of your Node.js project, install the middleware:
npm install @api-profiler/express. - Import the profiler as shown on the npm page, then register it with
app.use(profiler()). It must appear before your route definitions, or requests to those routes will not be observed. - Start the application and send real requests to the endpoints you care about. The rolling statistics need traffic to work with.
- Install the extension from the Marketplace listing, open the API Profiler view in VS Code, and inspect the route figures. Latency readings should also appear as inline decorations next to matching route definitions.
The listing says the extension recognizes Express route patterns and NestJS controller decorators. Treat that as the advertised scope. Routes assembled dynamically at runtime, or project layouts that hide route definitions from static reading, may not be recognized, and you should expect to check each route you need manually.
Reading the figures
The package documentation describes a per-route set of statistics calculated over a rolling window. The table below lists the values stated in the listing and package documentation.
| Figure | Documented behavior | Source and qualification |
|---|---|---|
| Rolling window | Five seconds by default | npm package documentation, indexed 2026 |
| Request count | Per route, from observed traffic | npm package documentation |
| Average and maximum latency | Per route, from observed traffic | npm package documentation |
| Error rate | Per route | npm package documentation |
| Requests per second | Shown only once there are enough samples | Marketplace listing; not shown before then |
| Fast threshold | 200 ms default display threshold | Marketplace listing settings table; a display setting, not a service-level objective |
| Warning threshold | 500 ms default display threshold | Marketplace listing settings table; a display setting, not a service-level objective |
The listing states a principle that matters when you read these values: “A number that was not measured is never shown.” A missing requests-per-second figure therefore means the sample is too small, not that the route is broken. A route with no traffic in the window should show no measured value at all.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Rank #2
- 🖥✔️ EVERY ESSENTIAL SHORTCUT - With the SYNERLOGIC Visual Studio Code Reference Keyboard Shortcut Mousepad for Windows PC, you have the most important shortcuts conveniently placed right in front of you. Easily learn new shortcuts and always be able to quickly lookup commands without searching online.
- 💻✔️ Work FASTER and SMARTER - Quick tips at your fingertips! This tool makes it easy to learn how to use your computer much faster and makes your workflow increase exponentially.
- 🖥✔️ QUALITY GUARANTEE - We stand behind our product! It’s made with outstanding military-grade durable vinyl and the professional design gives our stickers and mousepads an OEM appearance. Our responsive and dedicated customer service team is here to promptly respond to your messages and resolve any issues you may have.
- 💻 ✔️ From BASIC to ADVANCED - Whether you are a seasoned computer professional or a beginner, the SYNERLOGIC Mousepad will save you both time and frustration, guaranteed! You can easily reach a new level of computer proficiency using our convenient and affordable mousepad.
- 💻 ✔️Compatible with any brand laptop or desktop running Windows Operating System. 🇺🇸PROUDLY MADE IN USA🇺🇸
Observed traffic versus generated load
The listing says that results from ordinary traffic and results from a generated load test are labeled separately. Keep them apart when you interpret them:
- Observed traffic is the timing of requests your application actually received, whether from your browser, a frontend, or another service.
- Generated load comes from replaying a recorded request against your application. It shows how a route behaves under the concurrency you configure, not how real users experienced it.
Because of this split, a load-test result should not be read as if it were ordinary production traffic, and the reverse is also true.
Running a load test safely
The package documentation describes replaying a recorded request against localhost. Several safeguards are documented, but none of them removes the need for careful test design:
Rank #3
- Localhost only. Replays target the local application, not remote servers.
- GET by default. Non-GET methods such as POST require explicit opt-in.
- Side-effect warning. The package warns that replayed POST requests can write real data.
- Load header. Replays carry an
x-api-profiler-load: 1header so handlers can skip side effects such as sending email or processing payments. - Default load settings. The listing gives 10 concurrent connections and a five-second duration as the defaults.
The header only helps if your code checks for it. Before enabling a non-GET replay, confirm that each handler you exercise either skips external side effects when that header is present or runs against a disposable database and sandboxed payment and mail services.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Recordings, credentials and production use
Recorded requests can contain live credentials such as authorization headers or session tokens. According to the package documentation, recordings stay in memory, are not written to disk or sent elsewhere, and are masked in displays. These are the vendor’s stated claims; no independent security audit of the package was available for this guide.
The documentation also says production mode disables recording. Set the environment variable on any production server so that the variable is present when the process starts:
Rank #4
- 🖥✔️ EVERY ESSENTIAL SHORTCUT - With the SYNERLOGIC Visual Studio Code Reference Keyboard Shortcut Mousepad for Mac, you have the most important shortcuts conveniently placed right in front of you. Easily learn new shortcuts and always be able to quickly lookup commands without searching online.
- 💻✔️ Work FASTER and SMARTER - Quick tips at your fingertips! This tool makes it easy to learn how to use your computer much faster and makes your workflow increase exponentially.
- 🖥✔️ QUALITY GUARANTEE - We stand behind our product! It’s made with outstanding military-grade durable vinyl and the professional design gives our stickers and mousepads an OEM appearance. Our responsive and dedicated customer service team is here to promptly respond to your messages and resolve any issues you may have.
- 💻 ✔️ From BASIC to ADVANCED - Whether you are a seasoned computer professional or a beginner, the SYNERLOGIC Mousepad will save you both time and frustration, guaranteed! You can easily reach a new level of computer proficiency using our convenient and affordable mousepad.
- 💻 ✔️Compatible with any brand laptop or desktop running Mac Operating System. 🇺🇸PROUDLY MADE IN USA🇺🇸
NODE_ENV=production
Do not depend on the masking alone. Avoid recording requests that carry credentials you cannot rotate easily, and confirm in your own environment that the production configuration is in effect before you deploy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Versions, compatibility and licence
The npm listing extract reports version 0.1.0 and states: “Works with Express 4 and 5, Node 18+.” That extract reflects the package as indexed in 2026. The package is recent, and both its version number and its compatibility statement can change, so check the npm page and the package’s release history before installing.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →The Marketplace listing identifies the extension’s licence as AGPL-3.0-only. That is a copyleft licence, so review its terms before you incorporate the extension’s code into your own distributed or hosted product. The licence shown on the npm package was not part of the extract used here; check that field directly, because the middleware may carry different terms from the extension.
Limits to plan around
- Support is documented for Express and NestJS-on-Express. Other frameworks are not described in the listing, so do not assume they work.
- Figures exist only for traffic the middleware has seen during the rolling window. Quiet routes will show little or nothing.
- Requests per second appear only after enough samples accumulate.
- Displayed thresholds are the extension’s defaults and can be changed; they are not universal targets for your API.
- No independent comparison with other profiling approaches was established for this guide, so it does not rank the tool against alternatives.
When figures do not appear
- Nothing displays for a route. Confirm
app.use(profiler())is registered before that route, restart the application, and send a fresh request. - A NestJS or Express route is missing from the sidebar. Check whether the route is built dynamically. If so, the static scan may not find it.
- Requests per second is blank. Send more requests within the five-second window until the package has enough samples.
- A load test writes data. Stop the replay, confirm the method was not switched to a non-GET method without a safe handler, and add the
x-api-profiler-loadcheck to that handler.
The extension is most useful as an in-editor view of what your running Express or NestJS application is actually doing. Used with the safeguards above, it gives developers a fast way to spot slow or failing routes during development.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




