Various performance baselines for typescript-eslint.
You'll need hyperfine installed locally, such as with brew install hyperfine
or winget install hyperfine
. See sharkdp/hyperfine#installation.
npm install npm run generate npm run measure
You can manually measure individual cases by running hyperfine ../../node_modules/eslint/bin/eslint.js --ignore-failure --warmup 1
.
The caseEntries
values in src/data.ts
can be modified to test:
files
: roughly how many generated files should be lintedlayout
: what rough shape of imports those files exhibit:
"even"
: a single root-level index.ts
importing from roughly an even triangle shape of files"references"
: a single root-level tsconfig.json
with project references to a few projects"wide"
: one root-level index.ts
importing from all files in the projectsingleRun
: whether to enable single-run inference as a performance boosttypes
: whether to use parserOptions.project
or parserOptions.projectService
for typed lintingRight now, parserOptions.project
with single-run inference outperforms parserOptions.projectService
. This is a performance issue and we are investigating it as a bug.
┌───────┬───────────────────────┬───────────────────────┐
│ files │ project (even layout) │ service (even layout) │
├───────┼───────────────────────┼───────────────────────┤
│ 1024 │ '2.371 s ± 0.029 s' │ '2.724 s ± 0.049 s' │
└───────┴───────────────────────┴───────────────────────┘
See typescript-eslint/typescript-eslint#9571 Performance: parserOptions.projectService no longer outperforms parserOptions.project in typescript-eslint.
The comparisons/
directory contains details on more specific comparisons. See each comparisons/*.md
file for details on what's being measured.
The traces/
directory contains more specific traces for investigations.
✨ You might consider using 0x for nice flamegraph visuals.
All comparisons were run on a common shape of linting: 1024 files with the "even" (triangle-shaped) imports layout.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4