Skip to content
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 improvements #173

Open
Tracked by #3921
letmejustputthishere opened this issue Feb 11, 2023 · 9 comments · Fixed by #239
Open
Tracked by #3921

performance improvements #173

letmejustputthishere opened this issue Feb 11, 2023 · 9 comments · Fixed by #239

Comments

@letmejustputthishere
Copy link
Member

currently with complex projects it takes a couple of seconds until the extension is up to date.
e.g. when I type : Text to specify the type of a function argument, i can hover the text with my cursor and watch the progress of the tool with the info text updating like
unbound type T
unbound type Te
unbound type Tex

@letmejustputthishere
Copy link
Member Author

letmejustputthishere commented Feb 11, 2023

can this be improved? i autosave every 500ms (in case that has an effect)

@rvanasa
Copy link
Contributor

rvanasa commented Feb 12, 2023

Does this still happen when autosave is turned off? This looks like a bug with the type checking debounce logic (rather than purely a performance issue), so it'll be helpful to know whether this is related to autosaving.

@AleDema
Copy link

AleDema commented Feb 18, 2023

I have this issue too and autosave is turned off, not sure if it could be caused by wsl2.

@letmejustputthishere
Copy link
Member Author

turning off autosave didn't help :/
i'm on macos and use the latest version of the plugin

@rvanasa
Copy link
Contributor

rvanasa commented Feb 23, 2023

Thanks for checking. Are there any public projects which I could use to fully recreate the issue on my end?

For some context, large projects with > 100 files used to take over a minute to fully type-check (comparable to large Rust projects in VS Code). Something on the order of 1-2 seconds is currently expected for projects with large numbers of files and dependencies. This can be further improved in the future, and hopefully the recent round of optimizations makes the extension a lot more usable for large projects in the immediate term.

@letmejustputthishere
Copy link
Member Author

Yes, you can check this
https://github.com/flowerpowerdao/power-equalizer

@rvanasa
Copy link
Contributor

rvanasa commented Feb 25, 2023

Thanks! I will increase the priority of further optimizations (currently representing DFINITY at ETHDenver, so I'll most likely take another look at this after March 5). If anyone reading this is at the convention, definitely come say hi! :)

@rvanasa
Copy link
Contributor

rvanasa commented Aug 22, 2023

Version 0.13.11 of the extension includes several bugfixes and improvements to address this issue. I'll leave this issue open for a bit; if you notice a difference (or lack thereof) in the smoothness of the type checker, definitely let me know so I can determine whether to prioritize another round of optimizations. :)

@marc0olo
Copy link
Member

same observation on my side. I think the issue becomes even worse when opening a parent folder that includes many different projects. when I remember correctly I even saw an out of memory error message in the output

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants