-
Notifications
You must be signed in to change notification settings - Fork 58
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
Extreme performance degrade on ~1000 lines contracts #95
Comments
I ran into the same situation, with a latency of about 2s, but CPU utilization under 30% Version: 1.66.2 (Universal) |
I am experiencing issues too:
Steps to reproduce:
|
please check out https://github.com/Consensys/vscode-solidity-auditor/releases/tag/v0.2.0 and report. should be much better although not completely fixable right now as cancellation tokens don't seem to properly work with editor change events. |
A big thank you for this release! The performance has improved significantly, but it is still not perfect. Try opening a large contract (maybe one that inherits some methods) and hold down tab to observe the lag. |
CleanShot.2023-10-16.at.15.11.03.mp4 |
I've observed some concerning performance issues even with contracts that are shorter in lines of code. Notably, when flattened, one such contract expands to about ~38,000 lines, almost 10 times bigger than the previous problematic contract (when flattened). This leads me to think there might be underlying processes accounting for this expanded view. While I'm uncertain about the exact role of "cancellation tokens", I speculate that the lag could be associated with loading editor decorations and other background processes. Could it be that the entire source undergoes recompilation or a similar time-intensive process, leading to the lag? A potential solution could be caching unchanged objects and triggering recompilation only when there are modifications in inheritance, imports, or parent structures. For instance, simple white space changes shouldn't require intensive background processing if no inheritance attributes or relevant objects are altered. I hope these insights are useful, and I appreciate the efforts on improving the plugin. |
Hi! Great plugin. Experimenting a bit with it and noticing some very bad degrade of performance when interacting with non-trivial contracts (>1000 lines).
I'm not usually a VSCode user so I'm not sure what information would be useful in this case. I'm using:
System information:
All extensions settings (and the related extensions settings as well) set to their default value.
I'd be glad to attach any extra debugging information which may help.
The text was updated successfully, but these errors were encountered: