Skip to content

Repo (or org): add tooling to generate baselines of memory and time during linting #8087

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
JoshuaKGoldberg opened this issue Dec 18, 2023 · 1 comment
Labels
documentation Documentation ("docs") that needs adding/updating performance Issues regarding performance repo maintenance things to do with maintenance of the repo, and not with code/docs team assigned A member of the typescript-eslint team should work on this.

Comments

@JoshuaKGoldberg
Copy link
Member

Suggestion

Every once in a while, one of us will hop onto a call with a team to try to diagnose why their type checked linting is running slowly. We'll see something like hundreds of MBs (or even a few GB) being taken up, and/or seconds-to-minutes to run. It's hard for us to give advice as to whether those measurements are normal without knowing the normal baselines for different projects:

  • Files: dozens, hundreds, thousands of files?
  • Structure: one project, a few project references, dozens of project references?
  • Types complexity: straightforward usage, and/or many conditional types, and/or libraries such as Zod?

Proposal: let's make a dedicated package? repository? something? that can:

  1. Deterministically codegen various projects across those different scales
  2. Report rough space and time taken for typed linting

We'd then be able to know whether projects of similar scales are running with the expected space/time parameters.

This is really part of #6218. Maybe this issue can track a more comprehensive performance solution, while that can track the initial "get it done"?

@JoshuaKGoldberg JoshuaKGoldberg added triage Waiting for team members to take a look documentation Documentation ("docs") that needs adding/updating performance Issues regarding performance repo maintenance things to do with maintenance of the repo, and not with code/docs labels Dec 18, 2023
@JoshuaKGoldberg
Copy link
Member Author

@kaleidawave's JoshuaKGoldberg/dot-com#143 (comment) brings up a good idea: we could use this to showcase performance issues! I.e. all the major points in https://typescript-eslint.io/linting/troubleshooting/performance-troubleshooting could be given comparison tables showing the impact of those points. At the very least I'd love to have concrete details for eslint-plugin-import and eslint-plugin-prettier.

@JoshuaKGoldberg JoshuaKGoldberg added accepting prs Go ahead, send a pull request that resolves this issue and removed triage Waiting for team members to take a look labels Jan 6, 2024
@JoshuaKGoldberg JoshuaKGoldberg added team assigned A member of the typescript-eslint team should work on this. and removed accepting prs Go ahead, send a pull request that resolves this issue labels Jul 11, 2024
@JoshuaKGoldberg JoshuaKGoldberg self-assigned this Jul 11, 2024
@JoshuaKGoldberg JoshuaKGoldberg removed their assignment Aug 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Documentation ("docs") that needs adding/updating performance Issues regarding performance repo maintenance things to do with maintenance of the repo, and not with code/docs team assigned A member of the typescript-eslint team should work on this.
Projects
None yet
Development

No branches or pull requests

1 participant