Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2.8k
Description
Before You File a Bug Report Please Confirm You Have Done The Following...
- I have tried restarting my IDE and the issue persists.
- I have updated to the latest version of the packages.
- I havesearched for related issues and found none that matched my issue.
- I haveread the FAQ and my problem is not listed.
Issue Description
Under typescript 5.5 we're seeing typescript-eslint runs take 2.3x longer in our large monorepo than under any previous version of typescript. The slowdown applies to every typescript-eslint build we've tested, including the v8 rc.
We narrowed this down to a specific typescript change by usinggit bisect
in the typescript repo and running our typescript-eslint rules with local typescript builds:microsoft/TypeScript#58045.
All builds prior to that commit run in expected time, all builds after run 2.3x slower. In our case that means 3m45s for ts <=5.4 vs ~8+ min for ts 5.5, with no changes other than the ts version.
I'll also be putting up an issue in the typescript repo since the slowdown seems to be coming on their end, but it seems worth raising here as well.
We can't share the private monorepo but I was able to reproduce a smaller 1.3x slowdown with the same setup in the sentry monorepo, chosen just because it's a large public monorepo that uses typescript-eslint. Our repo uses quite complex types that I'm assuming are somewhat of a pathological case for wherever the slowdown is coming from, which may explain the difference in slowdown size.
Reproduction Repository Link
Repro Steps
- after setting up deps, run
time yarn lint:js
in the ts 5.5 branch, observe the runtime - check out the linked ts 5.4 branch, install deps, and run the same command. It should be noticeably and consistently faster
I've put more detailed repro notes in the linked PR here:walkerdb/sentry#1
Versions
package | version |
---|---|
@typescript-eslint/eslint-plugin | rc-v8 |
@typescript-eslint/parser | rc-v8 |
@typescript-eslint/scope-manager | rc-v8 |
@typescript-eslint/typescript-estree | rc-v8 |
@typescript-eslint/type-utils | rc-v8 |
@typescript-eslint/utils | rc-v8 |
TypeScript | 5.5.3 |
ESLint | 8.57 |
node | 18.18 |
the same slowdown applies to typescript-eslint v7 and v6.