eslint.config.mjs includes only those rules implemented in tsgolint.
Note
Biome and deno lint are not considered in this benchmark because they do not support typed linting.
On AMD Ryzen 7 5800H (8 cores, 16 threads)
| Repository | ESLint + typescript-eslint | tsgolint | Speedup |
|---|---|---|---|
| microsoft/vscode | 167.8s | 4.89s | 34x |
| microsoft/typescript | 47.4s | 2.10s | 23x |
| typeorm/typeorm | 27.3s | 0.93s | 29x |
| vuejs/core | 20.7s | 0.95s | 22x |
Detailed report
| microsoft/vscode |
|---|
Benchmark 1: eslint
Time (mean ± σ): 167.840 s ± 1.233 s [User: 211.852 s, System: 10.952 s]
Range (min … max): 164.816 s … 169.410 s 10 runs
Warning: Ignoring non-zero exit code.
Benchmark 2: tsgolint
Time (mean ± σ): 4.897 s ± 0.153 s [User: 64.479 s, System: 4.911 s]
Range (min … max): 4.736 s … 5.183 s 10 runs
Summary
tsgolint ran
34.27 ± 1.10 times faster than eslint
| microsoft/typescript |
|---|
Benchmark 1: eslint
Time (mean ± σ): 47.465 s ± 0.669 s [User: 70.492 s, System: 4.250 s]
Range (min … max): 46.636 s … 48.685 s 10 runs
Warning: Ignoring non-zero exit code.
Benchmark 2: tsgolint
Time (mean ± σ): 2.100 s ± 0.023 s [User: 18.254 s, System: 1.448 s]
Range (min … max): 2.068 s … 2.138 s 10 runs
Summary
tsgolint ran
22.60 ± 0.40 times faster than eslint
| typeorm/typeorm |
|---|
Benchmark 1: eslint
Time (mean ± σ): 27.294 s ± 0.504 s [User: 42.467 s, System: 2.522 s]
Range (min … max): 26.614 s … 28.522 s 10 runs
Warning: Ignoring non-zero exit code.
Benchmark 2: tsgolint
Time (mean ± σ): 930.0 ms ± 5.2 ms [User: 9575.1 ms, System: 1041.6 ms]
Range (min … max): 921.4 ms … 941.6 ms 10 runs
Summary
tsgolint ran
29.35 ± 0.57 times faster than eslint
| vuejs/core |
|---|
Benchmark 1: eslint
Time (mean ± σ): 20.680 s ± 0.364 s [User: 35.617 s, System: 2.117 s]
Range (min … max): 20.412 s … 21.604 s 10 runs
Warning: Ignoring non-zero exit code.
Benchmark 2: tsgolint
Time (mean ± σ): 955.5 ms ± 31.4 ms [User: 11528.6 ms, System: 1001.1 ms]
Range (min … max): 909.7 ms … 993.4 ms 10 runs
Summary
tsgolint ran
21.64 ± 0.81 times faster than eslint
Prerequisites:
- Built
tsgolintbinary. See README.md for how to build it. - Docker/Podman
docker build --file ./Containerfile --progress plain ..
# or
podman build --file ./Containerfile --progress plain ..Prerequisites:
- Clone the repositories
./clone-projects.sh
- Install deps and setup ESLint configs
./setup.sh
- Run benchmarks
./bench.sh