Community
Participate
Working Groups
Created attachment 205021 [details] Trace The "Compare With" dialog has bad UI performance when the filter pattern is changed, e.g. in repo git://git.eclipse.org/gitroot/pde/eclipse.pde.ui.git . The problem is that org.eclipse.egit.ui.internal.repository.RepositoriesViewContentProvider.getChildren(Object) and hasChildren(Object) access the file system via RefDirectory.getRefs(String). Since this method is called often by the filter infrastructure, the UI feels sluggish and is often blocked. The refs should be cached when the dialog is opened.
Hmm, not minor any more for me. Bug 360157 created the repository git://git.eclipse.org/gitroot/platform/eclipse.platform.common.git that merged the history of projects from 4 sources (releng, jdt.doc, platform.doc, pde.doc), and the combined list of tags is now huge. When I open an AbstractBranchSelectionDialog and type "v", the refresh takes more than 5 seconds. That's enough for Windows to show the spin cursor and add "(No Response)" to the title bar of the dialog. When the UI thread runs again, the dialog lost the keyboard focus and I have to grab the mouse to continue entering the pattern. The UI lag time should be below 100ms.
Perhaps a DeferredTreeContentManager should be used instead??
(In reply to comment #2) > Perhaps a DeferredTreeContentManager should be used instead?? Actually, now that I think about it, I'm not sure how it would interact with a filter.
(In reply to comment #3) Yes, and a DeferredTreeContentManager would help solving this bug (bad performance). The solution is really in comment 0: > The refs should be cached when the dialog is opened.
*** This bug has been marked as a duplicate of bug 352253 ***
(In reply to comment #4) > Yes, and a DeferredTreeContentManager would help solving this bug (bad > performance). Bad typo: It would *not* help solving the performance problem.
Not a dup. Submitted fix: https://git.eclipse.org/r/6750
Merged as bd240a28adeecbbd14d30722f49c6888feb0b277.