Skip to content

Bug: ~1.5x slowdown in Sentry codebase from project service #8424

Closed
@JoshuaKGoldberg

Description

@JoshuaKGoldberg

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 have searched for related issues and found none that matched my issue.
  • I have read the FAQ and my problem is not listed.

Issue Description

Switching from parserOptions.project: true to parserOptions.EXPERIMENTAL_useProjectService should in the worst case scenario should be roughly the same speed as before. The best case scenario should be faster. But checking it out on the getsentry/sentry project, I'm seeing a raise from ~50s/65s to ~80s/110s. 😬

Baseline:

 $ time yarn lint:js                    
yarn run v1.22.19
$ eslint static/app tests/js --ext .js,.jsx,.ts,.tsx
✨  Done in 49.47s.
yarn lint:js  65.43s user 3.26s system 138% cpu 49.607 total

With the project service:

$ time yarn lint:js
yarn run v1.22.19
$ eslint static/app tests/js --ext .js,.jsx,.ts,.tsx
✨  Done in 81.42s.
yarn lint:js  108.11s user 8.10s system 142% cpu 1:21.55 total

Thanks @yagiz for reporting!

Reproduction Repository Link

https://github.com/getsentry/sentry/pull/64967/files#diff-e2954b558f2aa82baff0e30964490d12942e0e251c1aa56c3294de6ec67b7cf5R28-R30

Repro Steps

  1. Clone getsentry/sentry
  2. time yarn lint:js
  3. Enable parserOptions.EXPERIMENTAL_useProjectService
  4. time yarn lint:js

Versions

package version
@typescript-eslint/eslint-plugin 6.19.0
@typescript-eslint/parser 6.19.0
TypeScript 5.3.2
ESLint 8.49.0
node 20

Metadata

Metadata

Labels

bugSomething isn't workinglocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.performanceIssues regarding performanceteam assignedA member of the typescript-eslint team should work on this.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions