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

Opening the Run Configurations Dialog Freezes UI #3

Open
HeikoKlare opened this issue Jun 26, 2023 · 6 comments
Open

Opening the Run Configurations Dialog Freezes UI #3

HeikoKlare opened this issue Jun 26, 2023 · 6 comments
Assignees
Labels
Performance A Request for a Performance Improvement Platform UI Issue for Platform UI

Comments

@HeikoKlare
Copy link
Contributor

HeikoKlare commented Jun 26, 2023

Current Behavior

Opening the "Run Configurations" dialog indeterministically takes a long time, in particular when first opened after starting Eclipse. It freezes the UI for a multitude of seconds.

EDIT: this behavior is due to several bad implementations that contribute to an overall bad performance. This issue will then serve as an umbrella for such smaller issues.

Expected Behavior

The "Run Configurations" dialog opens fast or shows some progress dialog to indicate what is taking so much time to open it. If the operation is still too slow and can NOT be optimized, the operation should be cancelable and the UI should react properly.

The specific solutions applied for each specific issue should be documented in the issue itself.

Further ideas (they should be addressed in the specific issues) can be found in this comment: vi-eclipse/Eclipse-JDT#8 (comment). Shortly summarized:

  • Asynchronous calculation of hierarchies (for the JUnit configs)
  • Disabling the UI properly while things are being calculated

Tasks

@HeikoKlare HeikoKlare added Platform UI Issue for Platform UI Performance A Request for a Performance Improvement labels Jun 26, 2023
@fedejeanne
Copy link

See eclipse-jdt/eclipse.jdt.ui#653

@HeikoKlare
Copy link
Contributor Author

Just not to forget, see vi-eclipse/Eclipse-JDT#8 (comment) for further ideas.
They should still be properly documented in this issue.

@fedejeanne
Copy link

Just not to forget, see vi-eclipse/Eclipse-JDT#8 (comment) for further ideas.
They should still be properly documented in this issue.

Looking back at this issue, I think we should stick to simpler solutions first like moving the long-running operations to the activation of the tabs (vi-eclipse/Eclipse-PDE#2), adding progress indicators (eclipse-jdt/eclipse.jdt.ui#675) and -if necessary- making the operation cancelable (vi-eclipse/Eclipse-PDE#3).

@HeikoKlare what do you say if we keep this issue as an umbrella for all other smaller issues? If you agree to it, I can change the description of this issue and start listing the known issues and PRs related to it and we can also add new specific issues later.

I also briefly tested the performance of the Launch Configurations Dialog in our PV workspace and is looking fine so I don't have any specific issues/proposals to add to this umbrella issue right now.

@HeikoKlare
Copy link
Contributor Author

what do you say if we keep this issue as an umbrella for all other smaller issues?

Yes, this should serve as an umbrella issue. Seems like I accidentally moved it to the wrong backlog category, as it had been placed under "Aggregates" and is not part of "Ready: Atomic" instead of "Ready: Epics".
Still the ideas documented in vi-eclipse/Eclipse-JDT#8 (comment) should be documented either here or in an atomic issue under the umbrella of this, even though they will have low priority and may not be addressed soon.

@fedejeanne
Copy link

Yes, this should serve as an umbrella issue

👍

Still the ideas documented in vi-eclipse/Eclipse-JDT#8 (comment) should be documented either here or in an atomic issue under the umbrella of this, even though they will have low priority and may not be addressed soon.

Ok. I currently have no proposals though, since the 2 "big" issues (calculation of the class hierarchies for JUnit configs and Tracing Options for the PDE configs) have been addressed and the solution is good enough.

@HeikoKlare
Copy link
Contributor Author

Options for Improvement

Here are some further options for improvement that we have discussed and that may be taken in the future for a more sustainable avoidance of freezes in the run configurations dialog. Those approaches would ensure that even in case of regressions w.r.t. single data providers for the dialog, it will still stay responsive (i.e., it will avoid performance regressions such as the (pre-)existing ones).

  1. Compute the super types (or other business logic that requires a significant amount of time) asynchronously. While computing, disable the UI widgets requiring the calculation results.
  2. Compute whole launch configuration pages asynchronously and show a progress bar in the right side of the launch configurations dialog while loading the information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Performance A Request for a Performance Improvement Platform UI Issue for Platform UI
Projects
Status: 🔖 Ready: Epics
Development

No branches or pull requests

2 participants