quick-lint-js finds bugs in JavaScript programs.

Which JavaScript linter is the fastest and consumes the least energy? We benchmarked different JavaScript linters to give you the answer.

LSP: full-change-wait express-router.js

This benchmark measures how long an LSP server takes to give diagnostics to an editor.


0 ms 60 FPS 150 ms 300 ms 450 ms 600 ms 750 ms 900 ms 1050 ms 0.1 ms 1 ms 10 ms 100 ms 1050 ms
response time (lower is better)
linter response time (milliseconds)
min avg max ÷ qljsquick-lint-js
quick-lint-js 0.41 0.41 0.42 1.0×
RSLint 18.50 18.52 18.55 44.8×
Flow 36.73 37.00 37.52 89.4×
eslint-server 70.24 83.23 114.32 201.2×
Deno 387.57 440.96 559.74 1065.9×
TypeScript-Theia 435.07 621.95 984.36 1503.4×

Setup (untimed)

  1. Start the LSP server.
  2. Wait for initialization to finish.
  3. Open one document with contents from express-router.js.
  4. Wait for diagnostics.

Work (timed)

Repeat the following steps N times:

  1. Change a few characters in the document, sending the entire new document in an LSP message.
  2. Wait for diagnostics.


These benchmarks measure the following linters:

These benchmarks were measured on the following machine:



Deno's LSP server (and thus its Visual Studio Code extension) delays processing by 200 milliseconds. This means that Deno appears to be much slower than it actually is, but this artificial latency does affect the editing experience.