eslint shows the spent times of rules if the environment variable TIMING is set. For example:

$ TIMING=1 eslint lib
Rule                         | Time (ms) | Relative
:----------------------------|----------:|--------:
valid-jsdoc                  |   203.798 |     6.7%
camelcase                    |   142.146 |     4.6%
no-unmodified-loop-condition |   136.811 |     4.5%
indent                       |   127.138 |     4.2%
no-undefined                 |   124.525 |     4.1%
keyword-spacing              |    85.397 |     2.8%
space-in-parens              |    76.179 |     2.5%
no-this-before-super         |    72.317 |     2.4%
no-implied-eval              |    69.945 |     2.3%
space-infix-ops              |    57.128 |     1.9%

See also the official docs on Profile Rule Performance.

Answer from mysticatea on Stack Overflow
🌐
Marvinh
marvinh.dev › blog › speeding-up-javascript-ecosystem-part-3
Speeding up the JavaScript ecosystem - eslint
May 2, 2023 - Linting is the act of finding patterns in code that could lead to mistakes or ensure a consistent reading experience. It's a core piece of many JavaScript/TypeScript projects. We found lots of potential for time savings in their selector engine and AST conversion process and a perfect linter written in JS would be able to hit sub-second run times.
🌐
Medium
vmoh.medium.com › maximizing-eslint-performance-in-typescript-projects-ae12271fd370
Maximizing ESLint Performance in TypeScript Projects | by Vahid Mohammadi | Medium
March 29, 2024 - Your ESLint command should only lint `.ts` files included in the tsconfig.json files. If you lint files that aren’t included, typescript-eslint (used to) create a TS project for each file to lint it! That’ll take a lot of time!!
Discussions

typescript - How to speed up eslint on project with tons of files? - Stack Overflow
I have a git repo with probably ... and .js TypeScript/JavaScript files scattered around these "data" files. It seems as the repo has grown, I now get this basically every time I try and save a .ts or .js file: It waits like that (the pink bar at the bottom moving from left to right a bunch), for probably 3+ minutes every time I press CMD+s to save on my Mac. I have basic ESLint and prettier ... More on stackoverflow.com
🌐 stackoverflow.com
slow linting performance with high CPU usage
What were you trying to do? We recently migrated on of our projects from Flow to Typescript, but running eslint with the typescript parser is very slow (averaging 4 minutes). Having it running alon... More on github.com
🌐 github.com
1
October 25, 2019
Speed up ESLint
This is an issue to define tasks to improve ESLint performance per the recommendations from the "Speeding up the JavaScript ecosystem - eslint" blog post: https://marvinh.dev/blog/speedin... More on github.com
🌐 github.com
11
March 5, 2023
Poor performance on some projects
I'm opening a new issue since the other (#243) is closed and might not have visibility, but please close if not appropriate. We are trying to use typescript-eslint on a pretty large project wit... More on github.com
🌐 github.com
66
March 29, 2019
🌐
TypeScript ESlint
typescript-eslint.io › troubleshooting › typed-linting › performance
Performance | typescript-eslint
Using Project References -which requires enabling the new "project service" (parserOptions.projectService) in v8- can be helpful to speed up type checking on larger projects.
🌐
Stack Overflow
stackoverflow.com › questions › 77240364 › how-to-speed-up-eslint-on-project-with-tons-of-files
typescript - How to speed up eslint on project with tons of files? - Stack Overflow
Also you can try using .eslintignore files: https://eslint.org/docs/latest/use/configure/ignore ... Sign up to request clarification or add additional context in comments.
🌐
Duncanleung
duncanleung.com › why typescript-eslint performance is slow
Why typescript-eslint Performance is Slow – Duncan Leung
Use the --cache flag when running eslint: eslint --cache \*\*/\_.ts. Store the info about processed files in order to only operate on the changed ones. There is also a whole article on TypeScript performance which recommends: Set up tsconfig.json with the include property to specify only input folders in a project with TypeScript files that should be compiled.
🌐
GitHub
github.com › typescript-eslint › typescript-eslint › issues › 1140
slow linting performance with high CPU usage · Issue #1140 · typescript-eslint/typescript-eslint
October 25, 2019 - By inspecting the process, I could find that the initiator is the eslint extension, so I believe the root problem is the same. I also ran with TIMING=1 and disabled the most resource intensive rules (>10%) with no significant result. I also tried downgrading @typescript-eslint/eslint-plugin and @typescript-eslint/parser from 2.5.0 to 2.3.0 and upgrading to 2.5.1-alpha.3 to no result.
Author   mpgon
Find elsewhere
🌐
GitHub
github.com › eslint › eslint › issues › 16962
Speed up ESLint · Issue #16962 · eslint/eslint
March 5, 2023 - This is an issue to define tasks to improve ESLint performance per the recommendations from the "Speeding up the JavaScript ecosystem - eslint" blog post: https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-3/ I was able to ex...
Author   mdjermanovic
🌐
GitHub
github.com › typescript-eslint › typescript-eslint › issues › 389
Poor performance on some projects · Issue #389 · typescript-eslint/typescript-eslint
March 29, 2019 - I'm opening a new issue since the other (#243) is closed and might not have visibility, but please close if not appropriate. We are trying to use typescript-eslint on a pretty large project with 1000+ files. The CLI is very slow (see sta...
Author   jrparish
🌐
TypeScript ESlint
typescript-eslint.io
typescript-eslint
typescript-eslint is necessary for JavaScript tools such as ESLint to work with TypeScript's new syntax.
🌐
Khalil Stemmler
khalilstemmler.com › blogs › typescript › eslint-for-typescript
How to use ESLint with TypeScript | Khalil Stemmler
December 19, 2021 - And then update your .eslintrc with no-loops in the "plugins" array, and add the rule to the "rules" attribute like so. { "root": true, "parser": "@typescript-eslint/parser", "plugins": [ "@typescript-eslint", "no-loops" ], "extends": [ "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended" ], "rules": { "no-console": 1, "no-loops/no-loops": 2 } }
🌐
Mindful Chase
mindfulchase.com › home › explore › troubleshooting tips › code quality › advanced eslint troubleshooting in large-scale javascript and typescript projects
Advanced ESLint Troubleshooting in Large-Scale JavaScript and TypeScript Projects - Mindful Chase
July 24, 2025 - Large file counts, multiple plugins, and recursive config loading all contribute. Use caching, narrower globs, and per-package linting for speed. Ensure you use @typescript-eslint/parser and specify parserOptions.project. Place tsconfig in the same directory or update the path accordingly.
🌐
Medium
medium.com › inato › using-typescript-to-build-custom-eslint-rules-faster-53ad1c9dee2b
Using TypeScript to build custom ESLint rules faster | by Vincent Francois | inato | Medium
July 28, 2023 - We’ll need to install the package @typescript-eslint/rule-tester to import the tester utility and we also need to install the @typescript-eslint/parser node module so ESLint is able to parse the TypeScript code we’ll write in the test cases.
🌐
Medium
medium.com › scripting-bits › speeding-up-eslint-bad7a52d1d20
Speeding Up ESLint. ESLint is pretty slow, especially after… | by Vinson Chuong | Scripting Bits | Medium
July 29, 2020 - So, this means that if I keep a process running with the linter warmed up, I can speed up linting by 10x, at least for a small project. Most tools interact with ESLint (and it’s derivatives) through its CLI.
🌐
Reddit
reddit.com › r/neovim › eslint with some typescript rules is incredibly slow with null_ls compared to vscode
r/neovim on Reddit: eslint with some typescript rules is incredibly slow with null_ls compared to vscode
July 31, 2023 -

Hi all, I've been using neovim for about 6 months now and really enjoy it, but my only issue is that I find the feedback loop from eslint is incredibly slow - in the seconds range, compared to the same project in vscode. I assume this is an implementation issue on my end, but I have no idea what to do to resolve this.

I've also noticed that in projects that use the typescript-eslint parser, sometimes node processes just go through the roof.. which again is not an issue with whatever vscode is doing.

Thanks in advance for the help!!

🌐
TypeScript ESlint
typescript-eslint.io › getting-started
Getting Started | typescript-eslint
This page is a quick-start for ESLint's new "flat" config format to go from zero to linting with our recommended rules on your TypeScript code as quickly as possible · First, install the required packages for ESLint, TypeScript, and our tooling:
🌐
Reddit
reddit.com › r/javascript › speeding up eslint—even on ci
r/javascript on Reddit: Speeding up ESLint—Even on CI
October 27, 2023 - Chat about javascript and javascript related projects. Yes, typescript counts. Please keep self promotion to a minimum/reasonable level. ... Oxlint reaches general availability - an alternative to ESLint that's 50-100x faster (written in Rust)
🌐
GitHub
github.com › typescript-eslint › typescript-eslint › issues › 4735
Bug: eslint is running slow when giant files such as typescript.js are included · Issue #4735 · typescript-eslint/typescript-eslint
March 25, 2022 - There are no linting errors in these files (eslint passes successfully), so again, why is "fixed text" even being generated? I am willing to submit a pull request for this issue. Will post separately (GitHub is complaining about the content length). ... externalThis issue is with another package, not typescript-eslint itselfThis issue is with another package, not typescript-eslint itselfperformanceIssues regarding performanceIssues regarding performance
Author   kaiyoma
🌐
Reddit
reddit.com › r/javascript › [askjs] eslint replacement or making it fast
r/javascript on Reddit: [AskJS] EsLint replacement or making it fast
November 12, 2024 -

For context:

I have a Isomorphic JS project that is considered that uses nodeJS/React, the app uses single EsLint Configuration for both ends, the App uses so many linting rules, both plugins and custom ones written inside the team, the problem we have now is pre-commit checks are taking forever to finish (roughly 30 seconds)

We tried to remove all linting rules that we don't and the pre-commit checks are taking now around 10s

better but still bad, we tried also to look through alternatives like https://oxc.rs/ but the problem with OXC we could not reuse our existent rules, we are ok to rewrite our custom rules in any other language or any form that even if the new form does not use esTree for AST.

And to make EsLint faster we made some hacks including replace some rules with tsconfig flag checks like noUnusedLocals.

The question:

Do you have any suggestion for me to make the linting faster?
I am certainly we are running out of ideas.

UPDATE:

I tried Biome, my problem with migrating into Biome is it does not have support to our custom rules, since they don't support plugins yet, https://github.com/biomejs/biome/discussions/1649

Here are our custom rules we use:

  1. Throw Warnings when specific deprecated dependancies being imported

  2. Fixer function that replaces function call with a inversified class

  3. Warn whenever localstorage being used directly instead of using a react-hook made internally

  4. Checks if try catch does not have error cause

  5. Warning when a dev imports code from another monorepo

🌐
Webdevtutor
webdevtutor.net › blog › typescript-eslint-performance
Optimizing TypeScript Performance with ESLint
By running ESLint with the --profile flag, you can generate performance reports that highlight potential hotspots in your codebase. ... Optimizing the performance of your TypeScript code is crucial for building efficient and scalable applications. By leveraging ESLint and its powerful set of ...