-
Notifications
You must be signed in to change notification settings - Fork 205
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 of Reconciling Spring Java #1068
Comments
No, it's not a Spring Boot project. I disabled spring-java reconciling globally, thanks! |
Hey @fenjen, I would be interested in some additional details. Can you try something for me? I would like to see how much time and resources the symbol scanning consumes initially in your case if there are no symbols in the cache. Can you:
In the language server log output, there should be messages showing up talking about scanning symbols for Java files and how much time it took. Would be interesting to see those lines (if possible). Since we don't have progress bar support for this symbol scanning in place, this stuff will not show up in the progress bar on the UI, but you will see the messages showing up in the log view and you should see some CPU and memory consumption on the system (from the language server process, not the IDE process). Would be interesting to hear your subjective impressions on this period, compared to the reconciling observations. Many many thanks upfront!!! |
I disabled reconciling, enabled looging, ended Eclipse, removed all files in symbolCache and started Eclipse. But starting Eclipse always takes 100% of CPU and takes some time, so it's generally hard to tell how much slower it became with Spring Tools. The relevant part in Eclipse log:
The symbolCache file of the big project is 680K. What I know is that reconciling made everything extremely slow. |
@fenjen Thanks for giving this a try. I am looking at lines in the log that looks like this:
Would be interesting to see the numbers for your big project there (after deleting the files in symbols cache, of course) |
Running |
Hey @fenjen, I am looking for the console log output of the language server process, which you can enable in the preferences under |
Oh, I'm sorry. I thought
|
…ion for jdt reconciler for testing purposes
…ple validation - caching probably does not work for that yet
…for recipe existence to avoid lazy loadind race conditions
…e + use this on config changes + publish empty diagnostics when nothing found
The majority of the work has been done in the https://github.com/spring-projects/sts4/commits/jdt-diagnostics-via-symbols branch and is scheduled to ship as part of the 4.20.0 release, scheduled for end of September 2023. Therefore closing this item here for now. |
Early versions of this will be available once the 4.19.1 release is out and the work is being merged into main. Once that is done, this will be included in the CI builds for Eclipse and VSCode. |
i want change to idea |
If you mean IntelliJ IDEA, it provides awesome support for working with Spring (Boot) applications in the IntelliJ Ultimate Edition, so feel free to jump to that IDE to work on your Spring applications, if you would prefer that environment. If you are using the Spring Tools 4 for Eclipse or VSCode and you are observing issues, please provide more details what exactly the issues are, so that we can work on them and ship an improved version to you as soon as possible. In case you are observing issues, especially performance-related trouble while having the Java source reconciling activated, please de-activate this (as described above) for the moment. A vastly improved version of the source reconciling is in the works and will ship soon. |
I have several projects in my Eclipse of which some are quite large. For one of the projects, Spring Boot will do "Reconciling Spring Java" for almost two minutes (1:52). This happens on each Eclipse startup, and when I change source code (like adding a comment to the end of a code line). Not only is it super slow, it also takes a lot of system resources.
I haven't found any option to exclude my big project for Reconciling Spring Java - I tried adding the project name to Settings → Spring → Boot Dashboard → Exclude Projects (I don't think it's the correct place, but I haven't found anything else).
The text was updated successfully, but these errors were encountered: