Bug 84877 - Performance on startup
Summary: Performance on startup
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.1 M7   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2005-02-10 06:55 EST by Jerome Lanneluc CLA
Modified: 2005-05-13 06:57 EDT (History)
3 users (show)

See Also:


Attachments
Snaphots taken during RSA startup (194.66 KB, application/x-zip-compressed)
2005-02-10 06:56 EST, Jerome Lanneluc CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jerome Lanneluc CLA 2005-02-10 06:55:10 EST
Build id ?

From snapshots taken by Scott Rich, it looks like JDT Core is doing too much
work on startup.
Comment 1 Jerome Lanneluc CLA 2005-02-10 06:56:07 EST
Created attachment 17816 [details]
Snaphots taken during RSA startup
Comment 2 Jerome Lanneluc CLA 2005-02-10 06:56:56 EST
Comments from Nick Edgar:

From a quick glance through these, I can see a couple of problems:

- JDT core is doing work on startup (call to
JavaModelManager.loadVariablesAndContainers).  Can this be deferred until needed?
I believe you need to be careful about circularities on startup as well (e.g.
JDT core startup -> classpath computation -> PDE container -> back to JDT?). 
OSGi can timeout in this scenario too.

- PDE container queries do parsing, which is expensive.  Can it leverage the
existing plug-in registry picture in core?  I know it can't in general, since
the PDE target may not be the same as the host, but in the case where it is, can
this be optimized?  Talk to Wassim.

Another thing we'd like to investigate is bringing up the workbench before
restoring perspecives/views/editors, even if it it has to bring up a progress
dialog while doing so.
This won't be any faster, but will appear more responsive, and will be more
entertaining for the user ;-).
Unfortunately, the UI team has no cycles to play around with this right now.

Nick
Comment 3 Tod Creasey CLA 2005-03-07 11:57:30 EST
Adding my name to the cc list as we are now tracking performance issues more
closely. Please remove the performance keyword if this is not a performance bug.
Comment 4 Jerome Lanneluc CLA 2005-04-17 13:48:28 EDT
Changed JavaCore#setClasspathContainer(...) to optimize the startup case: if the
container's classpath entries are the same as the classpath entries recorded on
the previous session shutdown, then it doesn't go through another
SetClasspathOperation, but simply record the new container.
Comment 5 Jerome Lanneluc CLA 2005-04-18 06:00:08 EDT
On a monster workspace (more than 1000 plugins), the startup time went from 58
seconds to 26 seconds.
Comment 6 Jerome Lanneluc CLA 2005-04-18 07:45:44 EDT
Optimized setClasspathVariables(...) the same way.
Comment 7 Frederic Fusier CLA 2005-05-13 06:57:42 EDT
Verified for 3.1 M7 using build I20050513-0010.