Skip to content

Latest commit

 

History

History
139 lines (99 loc) · 4.08 KB

File metadata and controls

139 lines (99 loc) · 4.08 KB

Benchmarks

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.

Results

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

How to run benchmarks

Running in Docker/Podman

Prerequisites:

  • Built tsgolint binary. See README.md for how to build it.
  • Docker/Podman
docker build --file ./Containerfile --progress plain ..

# or

podman build --file ./Containerfile --progress plain ..

Running locally

Prerequisites:

  1. Clone the repositories
    ./clone-projects.sh
  2. Install deps and setup ESLint configs
    ./setup.sh
  3. Run benchmarks
    ./bench.sh