Bug 571277 - [performance] improve workplace refresh
Summary: [performance] improve workplace refresh
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Resources (show other bugs)
Version: 4.19   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Platform-Resources-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-02-18 01:52 EST by Jörg Kubitz CLA
Modified: 2021-02-18 04:36 EST (History)
1 user (show)

See Also:


Attachments
Screnshot of VisualVM 2.0.5 during full build showing hotspot (114.77 KB, image/png)
2021-02-18 01:52 EST, Jörg Kubitz CLA
no flags Details
Screenshot showing weird lookup stacktrace (121.46 KB, image/png)
2021-02-18 02:00 EST, Jörg Kubitz CLA
no flags Details
Stacktrace without Egit (118.69 KB, image/png)
2021-02-18 04:36 EST, Jörg Kubitz CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jörg Kubitz CLA 2021-02-18 01:52:28 EST
Created attachment 285586 [details]
Screnshot of VisualVM 2.0.5 during full build showing hotspot

We have a big workplace where the refresh after each java build uses a lot of CPU time (20sec) for lookup the DeltaDataTree nodes.
It feels like there might be some optimization to either avoid
 ElementTree.includes(IPath) in Workspace.getResourceInfo(IPath,,)
or introduce some DataStructure (HashMap or Tree) to eliminate the 2 loops in 
 DeltaDataTree.lookup(IPath) 

Suggestions welcome.
Comment 1 Jörg Kubitz CLA 2021-02-18 02:00:25 EST
Created attachment 285587 [details]
Screenshot showing weird lookup stacktrace
Comment 2 Andrey Loskutov CLA 2021-02-18 02:30:14 EST
EGit is responsible for the part of the stack in the middle. Could you remove that and measure again?
Comment 3 Jörg Kubitz CLA 2021-02-18 04:36:48 EST
Created attachment 285591 [details]
Stacktrace without Egit

I "removed" Egit by disconnecting all Projects.
Unfortunatly our eclipse TEA then fail to perform a full build without git.
However the Project/Clean../All action reveals almost the same problematic pattern and similar timing in the stacktrace - without egit. So i guess we can exclude egit from being the root reason.