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.
Measured July 20, 2026 on Apple M4 Pro (12 cores: 8 performance, 4 efficiency)
TypeORM and Vue were benchmarked with equivalent TypeScript 7-compatible configurations: TypeORM's removed downlevelIteration option was omitted and Node 16 module resolution was used, while Vue's removed baseUrl option was omitted and its path targets were made explicitly relative. The same adjusted configurations were used by both linters.
| Repository | ESLint + typescript-eslint | tsgolint | Speedup |
|---|---|---|---|
| microsoft/vscode | 83.2s | 6.96s | 12x |
| microsoft/typescript | 27.2s | 1.94s | 14x |
| typeorm/typeorm | 13.2s | 0.75s | 18x |
| vuejs/core | 12.3s | 0.95s | 13x |
Detailed report
| microsoft/vscode |
|---|
Benchmark 1: eslint
Time (mean ± σ): 83.239 s ± 2.889 s [User: 109.053 s, System: 5.656 s]
Range (min … max): 79.239 s … 87.427 s 10 runs
Warning: Ignoring non-zero exit code.
Benchmark 2: tsgolint
Time (mean ± σ): 6.964 s ± 0.241 s [User: 32.351 s, System: 1.517 s]
Range (min … max): 6.821 s … 7.593 s 10 runs
Summary
tsgolint ran
11.95 ± 0.59 times faster than eslint
| microsoft/typescript |
|---|
Benchmark 1: eslint
Time (mean ± σ): 27.170 s ± 0.971 s [User: 38.137 s, System: 1.305 s]
Range (min … max): 26.383 s … 29.403 s 10 runs
Warning: Ignoring non-zero exit code.
Benchmark 2: tsgolint
Time (mean ± σ): 1.942 s ± 0.034 s [User: 9.884 s, System: 0.513 s]
Range (min … max): 1.911 s … 2.007 s 10 runs
Summary
tsgolint ran
13.99 ± 0.56 times faster than eslint
| typeorm/typeorm |
|---|
Benchmark 1: eslint
Time (mean ± σ): 13.168 s ± 0.419 s [User: 19.208 s, System: 1.057 s]
Range (min … max): 12.746 s … 13.862 s 10 runs
Warning: Ignoring non-zero exit code.
Benchmark 2: tsgolint
Time (mean ± σ): 748.9 ms ± 14.0 ms [User: 3366.7 ms, System: 440.8 ms]
Range (min … max): 723.2 ms … 773.0 ms 10 runs
Summary
tsgolint ran
17.58 ± 0.65 times faster than eslint
| vuejs/core |
|---|
Benchmark 1: eslint
Time (mean ± σ): 12.302 s ± 0.791 s [User: 22.701 s, System: 0.620 s]
Range (min … max): 11.394 s … 14.198 s 10 runs
Warning: Ignoring non-zero exit code.
Benchmark 2: tsgolint
Time (mean ± σ): 952.4 ms ± 53.1 ms [User: 4270.1 ms, System: 247.8 ms]
Range (min … max): 866.4 ms … 1038.5 ms 10 runs
Summary
tsgolint ran
12.92 ± 1.10 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