-
Notifications
You must be signed in to change notification settings - Fork 206
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
progress view shows many AsyncLiveExpression refresh messages and doesn't respond anymore #653
Comments
Same problem: lots of AsyncLiveExpression refresh and CPU is going crazy, the problem appears in Eclipse 2021-06, in Eclipse 2021-03 all seems ok... |
Is it possible to switch it off somehow? |
I have it checked already. It doesn't help :) Anyway, it just hides some processes from the view, but I am asking about switch it off because CPU load is very high and Eclipse literally freezes for several seconds. |
You mean unchecked? It should be unchecked not to load JDT with searches for main methods... One more thing to check, just a hypothesis... How many editor tabs do you have open? How about closing them all except a few you currently working with... Wonder if this helps... |
When you run |
You are right. I understood it wrong and had it checked. Now I uncheck it. I will see if it helps. |
The fact that you're seeing a lot of AsyncLiveExpression refresh processes in the progress view is OK but they should all be done quickly and not stay around for long. These are just tiny async jobs running off the UI thread to refresh something in async fashion. They have been around for many version of the STS4 tooling. |
Looks like unchecking that filter doesn't prevent main method search jobs from being created, scheduled, executed.
I'll post the update site here once the build is done thus you can try it out and it's likely it will let you work with STS without the extra lag main method search jobs add. Hope this will unblock you using the latest STS. Meanwhile, I'll see what can be done about main method search jobs (async live expression refresh). Hope it is just a matter of finding the proper scheduling rule for them that allows build and java indexing to go first. Hope this sounds good to you!-) |
Use this update site: https://dist.springsource.com/snapshot/TOOLS/sts4/nightly/e4.20 (adjust the number at the end for your Eclipse version) After the update async live expression refreshes number will decrease almost to none if Hide local non-runnable apps is unchecked. The problem with main method async searches (async live expression refreshes) is that there is a big number of them (for each project) sitting in the job queue scheduled in sequence not letting build jobs to succeed first. Also, we need to bound how many of these jobs executed at the same time such that there is only a bounded number of threads created for them. |
Pushed this 7155f72 to address the issue.
Lets see if this helps. @sisqo @foal any chance you can try these changes out please? It is an addition to the previous change for the case of check-marked Hide local non-runnable apps |
@BoykoAlex May I ask: how is the MainMethod-Search supposed to work? Should it search only in the direct sources of a project at hand or will it search in transitive maven project dependencies as well (with workspace resolution enabled). |
@hbrands here is how main method is searched for: https:/spring-projects/sts4/blob/main/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/src/org/springframework/ide/eclipse/boot/dash/model/BootProjectDashElement.java#L89 I suspect however that even if referenced projects are searched as well it won't have a big impact on the performance of this feature... Once java index is ready searches are lightning quick... |
@hbrands One more thing! If the project has an existing launch config then it'll just be shown as runnable without checking for main method. Thus if project A has no main method but has a launch config it shows up for this reason. |
@BoykoAlex Bingo! There was an (incomplete) LaunchConfig for this project. After deleting it, the search works as expected. Thanks for the tip. 👍 |
I have installed the update and don't see the AsyncLiveExpression refresh anymore. |
I have updated to the latest CI builds and haven't seen any hiccups from this anymore. Therefore, closing this as fixed now. |
After starting up my STS4 4.11.0 installation with an existing workspace (from an internal project), the workspace comes up, but the progress view fills up with
AsyncLiveExpression refresh
items and the IDE is not very responsive anymore. CPU consumption is high.The thread dump reveals many threads in this state:
So it looks like the search for the main method is going crazy somehow. Maybe the JDT search engine is not safe to be used in this async way?
The text was updated successfully, but these errors were encountered: