Skip to content

markEHVN/bench-javascript-linter

 
 

Repository files navigation

Benchmark for Oxc vs ESLint

This benchmark only compares with ESLint and does not compare against Biome because the rules do not match.

Summary

Oxlint is 50x - 100x faster than ESLint depending on the number of CPU cores.

Input

  • uses the vscode/src directory, which contains 3684 files to lint
  • See .eslintrc.json for ESLint configuration.
  • @typescript-eslint is required for TypeScript

Results for eslint v8

Mac M2 8 cores

58 times faster than ESLint.

Benchmark 1: oxc
  Time (mean ± σ):     424.0 ms ±   2.2 ms    [User: 2243.9 ms, System: 373.6 ms]
  Range (min … max):   420.9 ms … 427.0 ms    10 runs

Benchmark 2: eslint
  Time (mean ± σ):     24.904 s ±  0.624 s    [User: 40.804 s, System: 1.691 s]
  Range (min … max):   24.292 s … 26.469 s    10 runs

Summary
  'oxc' ran
   58.73 ± 1.50 times faster than 'eslint'

Intel i7 6-cores

Benchmark 1: oxc
  Time (mean ± σ):     366.6 ms ±  16.8 ms    [User: 3116.9 ms, System: 507.3 ms]
  Range (min … max):   343.6 ms … 399.8 ms    10 runs

Benchmark 2: eslint
  Time (mean ± σ):     50.486 s ±  1.975 s    [User: 82.670 s, System: 3.590 s]
  Range (min … max):   47.101 s … 54.417 s    10 runs

Summary
  'oxc' ran
  137.70 ± 8.28 times faster than 'eslint'

AMD 5800H 8-cores

Benchmark 1: oxc
  Time (mean ± σ):     239.6 ms ±   2.3 ms    [User: 3113.7 ms, System: 153.3 ms]
  Range (min … max):   236.8 ms … 244.1 ms    10 runs

Benchmark 2: eslint
  Time (mean ± σ):      16.318 s ±  0.566 s   [User: 16.324 s, System: 0.723 s]
  Range (min … max):    15.624 s … 16.965 s   10 runs

Summary
  oxc ran
   68.09 ± 2.45 times faster than eslint

13th Gen Intel(R) i9-13980HX 24-cores (8p / 16e)

Benchmark 1: oxc
  Time (mean ± σ):      28.7 ms ±   3.0 ms    [User: 13.3 ms, System: 20.6 ms]
  Range (min … max):    23.1 ms …  44.3 ms    119 runs

Benchmark 2: eslint
  Time (mean ± σ):     374.9 ms ±   3.9 ms    [User: 416.3 ms, System: 67.2 ms]
  Range (min … max):   367.6 ms … 382.5 ms    10 runs

Summary
  'oxc' ran
   13.07 ± 1.38 times faster than 'eslint'

Intel core i5-4590

Benchmark 1: oxc
  Time (mean ± σ):      1.197 s ±  0.065 s    [User: 3.590 s, System: 0.273 s]
  Range (min … max):    1.147 s …  1.314 s    10 runs

  Warning: Ignoring non-zero exit code.

Benchmark 2: eslint
  Time (mean ± σ):     82.076 s ±  5.129 s    [User: 126.155 s, System: 3.591 s]
  Range (min … max):   77.457 s … 91.170 s    10 runs

Summary
  'oxc' ran
   71.68 ± 4.81 times faster than 'eslint'

Mac m1 10 Cores (8 performance and 2 efficiency)

Benchmark 1: oxc ./node_modules/.bin/oxlint ./tmp/vscode/src
  Time (mean ± σ):     584.6 ms ±  11.5 ms    [User: 3640.2 ms, System: 196.4 ms]
  Range (min … max):   573.8 ms … 612.2 ms    10 runs
 
  Warning: Ignoring non-zero exit code.
 
Benchmark 2: eslint ./node_modules/.bin/eslint -c .eslintrc.json ./tmp/vscode/src
  Time (mean ± σ):     33.316 s ±  0.478 s    [User: 50.109 s, System: 2.097 s]
  Range (min … max):   32.560 s … 34.375 s    10 runs
 
  Warning: Ignoring non-zero exit code.
 
Summary
  oxc ran
   56.99 ± 1.39 times faster than eslint

Results for eslint v9

Mac m1 10 Cores (8 performance and 2 efficiency)

Benchmark 1: oxc
  Time (mean ± σ):     615.3 ms ±  30.4 ms    [User: 3613.8 ms, System: 195.5 ms]
  Range (min … max):   583.7 ms … 677.1 ms    10 runs
 
  Warning: Ignoring non-zero exit code.
 
Benchmark 2: eslint
  Time (mean ± σ):     33.481 s ±  0.453 s    [User: 51.682 s, System: 2.329 s]
  Range (min … max):   32.861 s … 34.085 s    10 runs
 
  Warning: Ignoring non-zero exit code.
 
Summary
  oxc ran
   54.42 ± 2.78 times faster than eslint

Run

./init.sh
./bench.sh

About

oxc is 50 - 100 times faster than ESLint

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 83.3%
  • Shell 16.7%