-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Performance regression when updating from 2.9.0 to 2.10.0 #1058
Comments
confirmed, same issue, though for me it goes from 2 minutes to run on our project to 10 minutes and runs out of memory. No difference in rules enabled. memory usage 2.9 - ~ 200MB |
ah, brutal. I saw similar stuff but it looked like it was |
I am seeing super high memory usage (>2GB) for both 2.9 and 2.10. Do either of you have lockfiles showing what other dependency versions changed when upgrading from 2.9 to 2.10? If not, no worries. Given the huge difference in time+space, I am assuming it is some issue with the in-memory parsed module cache, it must be generating universally distinct hash keys for some reason... I tried explicitly downgrading |
I checked |
Same here. we use shrinkwrap and its only the core package change when upgrading. I'm going to try changing some code in the package to see if I can identify the change |
If I remove this line: thats line 416 of ExportMap
then the problem does not occur. Is the problem that its capturing the source code of every file I am linting? I'm using babel-eslint as the parser if that makes any difference. |
Ohhhhh no: function captureDependency(declaration) {
if (declaration.source == null) return null
const p = remotePath(declaration)
if (p == null || m.imports.has(p)) return p
const getter = () => ExportMap.for(p, context)
m.imports.set(p, { getter, source: declaration.source }) // <== this.
return p
} I bet it's this: edit: well, tried capturing only the necessary fields from |
Same issue here. When I looked at the heap there where a lot of edit: Also using babel-eslint |
Good info. I think I'm onto something but ran out of time this morning. I'll push my branch ( |
update: it dawned on me that I saw the same memory issues with 2.9 because my project uses the I will re-run my tests at some point without it to see if the changes I've made so far avoid retaining them within the plugin code (specifically via |
published fix in v2.11, AFAICT. let me know if you still see issues, and I can reopen if so 🙆♂️ |
Thanks for fixing this. I've upgraded to 2.11 and its fine. Sorry I couldn't confirm earlier. |
Fixed, thank you! |
The problem still appears for me in 2.11.0 if used with |
@JakubJagoda are you using the |
@benmosher sorry, should have mentioned - I am using the
|
@JakubJagoda can you open a new issue regarding |
Here's an idea for how to make |
Eslint check time on whole project takes 50% more time after updating from 2.9.0 to 2.10.0 even with disabled import/no-cycle rule.
My config:
The text was updated successfully, but these errors were encountered: