Bug 27358 - [startup] update does too much work at startup
Summary: [startup] update does too much work at startup
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Update (deprecated - use Eclipse>Equinox>p2) (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 2.1 M4   Edit
Assignee: Christophe Elek CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
: 27552 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-11-28 16:27 EST by Jeff McAffer CLA
Modified: 2002-12-23 09:57 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jeff McAffer CLA 2002-11-28 16:27:54 EST
see also bug 27357

At startup the update.core plugin is being activated and loading 99 classes for 
a total of about 500K of CODE.  Since nothing actually changed in the 
configuration, this seems like quite a lot of work.  Also, in most scenarios, 
that code is never run again so the total space is wasted.
Comment 1 Christophe Elek CLA 2002-11-29 16:48:48 EST
is that a dup of bug 27412 ?

Is the code loaded by workbench or everytime. Code should only be
executed/loaded when reconciliation is triggered by startup or when update
perspective is opened.
Comment 2 Christophe Elek CLA 2002-12-03 20:51:57 EST
*** Bug 27552 has been marked as a duplicate of this bug. ***
Comment 3 Nick Edgar CLA 2002-12-04 09:40:57 EST
This is not a dup of bug 27412.  We have improved how often we check for new 
features with Update Core by checking the getFeaturesChangeStamp().
However, when we do check, it should not be so heavyweight.  
Does it really take 99 classes and 500K to find the new features, or is this 
other stuff that could be deferred?

Comment 4 Christophe Elek CLA 2002-12-05 15:05:23 EST
Action Taken: we have two options 1) have a lazy instanciation of the model 2)
save the info a cookie when new feature have been found and enabled.
Action Plan: what data does UI need for each new found feature ?
Comment 5 Dejan Glozic CLA 2002-12-05 15:29:16 EST
I don't know if lazy instantiations covers configuration in the history, but we 
should definitely do that. If there is a separate defect that will cover that 
part, sorry for appending here. If not, then:

We should only load the current configuration and create list of saved and 
history configurations with the minimal set of fields needed by the UI to 
present them. Full loading of the configuration (from the separate 
configuration file) should be triggered when 'getConfiguredSites' is called.

The following fealds should be available without triggering full parsing:

getLabel()
getTimeline()
isCurrent()

These three fields can be encoded on the main configuration file (used to 
populate ILocalSite). They can be present as attributes in the configuration 
reference element. Consequently, they may be removed from the configuration 
file (although that is not critical).

ConfigurationView will not call 'getConfiguredSites()' as long as '+' sign is 
not pressed in the tree. That means that we can delay loading these files (in 
many cases configuration history folder is not open for the entire session, so 
users should not pay the price upfront).
Comment 6 Christophe Elek CLA 2002-12-23 09:57:10 EST
Action taken: implemenetd for M4
Action Plan: close