LSP: incremental-change-wait express-router.js
An LSP server is software which plugs into your code
editor. It provides diagnostics (error squigglies), go-to-definition,
and auto-complete. This benchmark measures how long an LSP server
takes to give diagnostics after making a change in a JavaScript file
(e.g. after typing a character). In other words, it measures
input latency. Lower latency means a faster-feeling editor.
Results
<%-
makeBenchmarkHTML(parseBenchmarkLSPJSON("incremental-change-wait-express-router-js.json",
seriesOptions)); %>
Setup (untimed)
- Start the LSP server.
- Wait for initialization to finish.
-
Open one document with contents from
express-router.js.
- Wait for diagnostics.
Work (timed)
Repeat the following steps N times:
-
Change a few characters in the document, sending small deltas in an
LSP message.
- Wait for diagnostics.
LSP: full-change-wait express-router.js
This benchmark measures how long an LSP server takes to give
diagnostics to an editor.
This benchmark differs from the
incremental-change-wait benchmark
in that the editor gives the new version of the file entirely rather
than just the incremental changes. This is for compatibility with
linters such as RSLint which do not support incremental changes.
Results
<%-
makeBenchmarkHTML(parseBenchmarkLSPJSON("full-change-wait-express-router-js.json",
seriesOptions)); %>
Setup (untimed)
- Start the LSP server.
- Wait for initialization to finish.
-
Open one document with contents from
express-router.js.
- Wait for diagnostics.
Work (timed)
Repeat the following steps N times:
-
Change a few characters in the document, sending the entire new
document in an LSP message.
- Wait for diagnostics.
Methodology
These benchmarks measure the following linters:
-
quick-lint-js
version 1.0.0 (Debian package)
-
RSLint
version v0.3.0 (with rustc version 1.56.1)
-
Flow
version 0.166.1
-
ESLint
version v8.4.1
- @typescript-eslint/eslint-plugin version 5.6.0
- @typescript-eslint/parser version 5.6.0
- eslint-plugin-vue version 8.2.0
-
vscode-eslint commit
bb35d03497bb39043033defbad7fd80b2a89698
- Node version v17.2.0
-
Deno
version 1.16.1 (with V8 version 9.7.106.15 and TypeScript version
4.4.2)
-
TypeScript
version 4.5.2 (with language server version 0.8.1 and Node version
v17.2.0)
These benchmarks were measured on the following machine:
- strager's "straglum"; Purism Librem 13 Version 4 laptop
- CPU: Intel Core i7-7500U CPU @ 2.70 GHz (2 cores, 4 threads)
-
OS: Linux Mint 20 Ulyana; Linux 5.4.0-42-generic #46-Ubuntu SMP
x86_64 GNU/Linux
- Performance governor: performance; 400 MHz - 3.50 GHz