-
Notifications
You must be signed in to change notification settings - Fork 408
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 issue on large project #1479
Conversation
Can you please give some details about this change? Why? How? How much improvement is expected? |
Java LS locks whole workspace when opening, closing changing, validating a file. |
I tried loading the guava project with and without this fix, but wasn't able to spot any significant difference when invoking completion (as per #1469 (comment)). |
Additional features:
|
I tried the fix on spring-boot project (5k+ files, 100+ gradle projects), i also didn't observe an obvious improvement. It's still a little lagging on completion, especially becomes more bad when opening a larger file (e.g. 2k+ LOC). Seems worthwhile to try lazy resolving addtionalTextEdits. @Eskibear has more experience on completion performance analysis, could you have a look at the fix? |
I just tried guava which contains 20K+ java files, on my mac with 2.9G Dual-Core i5 + 8G RAM. No suspicious extension enabled. Either with or without this PR, I don't see significant performance issue. Editing Then I broke down the time cost in jProfiler, finding It's as expected and matches our previous investigation. And for the moment, I think that lazy resolving |
The PR doesn't change textDocument/completion than codeAction, triggerValidation, hover, findLinks... The PR should enhance overall VS Code performance. |
....jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDocumentLifeCycleHandler.java
Outdated
Show resolved
Hide resolved
....jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDocumentLifeCycleHandler.java
Outdated
Show resolved
Hide resolved
org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/HoverInfoProvider.java
Outdated
Show resolved
Hide resolved
....jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDocumentLifeCycleHandler.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Snjezana Peco <[email protected]>
Thanks @snjeza! |
Fixes #1469
Signed-off-by: Snjezana Peco [email protected]