Bug 552930 - GitRepositoryProviderType: Defer initialization to background job
Summary: GitRepositoryProviderType: Defer initialization to background job
Status: ASSIGNED
Alias: None
Product: EGit
Classification: Technology
Component: Core (show other bugs)
Version: 5.6   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Karsten Thoms CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2019-11-12 02:59 EST by Karsten Thoms CLA
Modified: 2021-06-04 06:29 EDT (History)
2 users (show)

See Also:


Attachments
Profiler results (1.41 MB, application/pdf)
2019-11-12 02:59 EST, Karsten Thoms CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Karsten Thoms CLA 2019-11-12 02:59:57 EST
Created attachment 280597 [details]
Profiler results

With YourKit I recognized that the startup of a runtime workspace with ~30 Git repositories spends much time in the constructor of GitRepositoryProviderType. This is instantiated through an extension point, and the initialization runs within the main thread.

I think it is not necessary to do the heavy initialization work within the main thread. Instead, a system job can be scheduled. Eventually the 'subscriber' is initialized, and getSubscriber() just has to block until the initialization job has finished, if called before.

Attached document shows this. Note that this was is tracing mode and results slower as normal because of that.
Comment 1 Eclipse Genie CLA 2019-11-12 03:09:12 EST
New Gerrit change created: https://git.eclipse.org/r/152463
Comment 2 Lars Vogel CLA 2021-02-15 06:21:09 EST
Thomas, is this handled by Bug 560412 and can be marked as dup?
Comment 3 Thomas Wolf CLA 2021-02-15 07:02:50 EST
(In reply to Lars Vogel from comment #2)
> Thomas, is this handled by Bug 560412 and can be marked as dup?

No. This is something else. I'm not even sure when and where this provider creation is triggered. Probably by the Platform/Team framework; maybe if one starts Eclipse with the synchronize perspective open?