-
-
Notifications
You must be signed in to change notification settings - Fork 5k
Lint multiple files in parallel [$500] #3565
Copy link
Copy link
Closed
Labels
acceptedThere is consensus among the team that this change meets the criteria for inclusionThere is consensus among the team that this change meets the criteria for inclusionbountySomeone has posted a bounty for this issue on BountySourceSomeone has posted a bounty for this issue on BountySourcecliRelates to ESLint's command-line interfaceRelates to ESLint's command-line interfacefeatureThis change adds a new feature to ESLintThis change adds a new feature to ESLintneeds bikesheddingMinor details about this change need to be discussedMinor details about this change need to be discussedneeds designImportant details about this change need to be discussedImportant details about this change need to be discussed
Description
Metadata
Metadata
Assignees
Labels
acceptedThere is consensus among the team that this change meets the criteria for inclusionThere is consensus among the team that this change meets the criteria for inclusionbountySomeone has posted a bounty for this issue on BountySourceSomeone has posted a bounty for this issue on BountySourcecliRelates to ESLint's command-line interfaceRelates to ESLint's command-line interfacefeatureThis change adds a new feature to ESLintThis change adds a new feature to ESLintneeds bikesheddingMinor details about this change need to be discussedMinor details about this change need to be discussedneeds designImportant details about this change need to be discussedImportant details about this change need to be discussed
Type
Fields
No fields configured for issues without a type.
Projects
StatusShow more project fields
Complete
This is a discussion issue for adding ability to run eslint in parallel for multiple files.
The idea is that ESLint is mostly CPU bound, not IO bound, so creating multiple threads (for machine with multiple cores) might (and probably will) increase performance in a meaningful way. The downside is that currently ESLint's codebase is synchronous. So this would require rewriting everything up to and including eslint.js to be asynchronous, which would be a major effort.
I played with this a little while ago and found a few libraries for Node that handle thread pool, including detection of number of cores available on the machine.
And there are a ton of other libraries out there for this.
If anyone had any experience writing multithreaded applications for node.js and would like to suggest alternatives or comment on the above list, please feel free.
P.S. https://www.airpair.com/javascript/posts/which-async-javascript-libraries-should-i-use
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.