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 using git 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 Stepstime yarn lint:js
in the ts 5.5 branch, observe the runtimeI'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.
JoshuaKGoldberg, benjaminjkraft, noredeen, VIKTORVAV99, Josh-Cena and 2 more
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4