Bug 2659 - [Contributions] Defer delegate creation further for performance? (1GHSRIA)
Summary: [Contributions] Defer delegate creation further for performance? (1GHSRIA)
Status: RESOLVED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 2.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Simon Arsenault CLA
QA Contact:
URL:
Whiteboard:
Keywords: investigate, performance
Depends on:
Blocks:
 
Reported: 2001-10-10 22:40 EDT by Simon Arsenault CLA
Modified: 2002-11-14 15:57 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Arsenault CLA 2001-10-10 22:40:51 EDT
Looking into why the first time the popup menu of the Navigator view is
	opened it takes so long. One area that takes almost 2 seconds is the
	creation of the delegate for ObjectPluginAction.

	The method ObjectActionContributorManager::contributeObjectAction will
	end up creating instances of ObjectPluginAction. Its super-class
	(PluginAction) constructor calls selectionChanged(IStructuredSelection). In this
	method, it creates the delegate object if the plugin is activated. The problem
	is some plugins are "activated" but the classes for the delagate object have
	not been loaded, causing the class loader to run...sucking up all this time.

	I would suggest in the selectionChanged() method we do not create the
	delegate even if the plugin is activated - cause there is no guarentee
	that the classes needed are loaded. The run() method will cause the
	delegate to load.

NOTES:

SA (8/2/2001 11:06:33 AM)
	Having done this change to validate the performance gain, I noticed we get
	another 2 seconds because another section of code does not run if the
	delegate is not created. In total, this would represent about 40% speed
	improvement.

SA (8/2/2001 11:11:51 AM)
	And one more benefit, this also causes the Compare plugin not to activate.
	It was being activated because when one of the delegate classes was being
	loaded, it referenced a class in the Compare plugin, causing it to be activated.
	(the plugin containing this delegate class does have a prereq on the Compare
	plugin).
Comment 1 DJ Houghton CLA 2001-10-29 19:07:46 EST
PRODUCT VERSION:
	R 0.9

Comment 2 Kevin Haaland CLA 2002-03-20 16:38:52 EST
We need to balance the desire to have accurate enablement vs speed. 
Comment 3 Randy Giffen CLA 2002-05-27 21:41:26 EDT
Defer for more investigation
Comment 4 Randy Giffen CLA 2002-08-08 14:59:48 EDT
Reopen for investigation
Comment 5 Simon Arsenault CLA 2002-09-03 16:38:04 EDT
I do not see a perfomance problem anymore...maybe this is not an issue anymore?
Comment 6 Simon Arsenault CLA 2002-11-14 15:57:33 EST
Not a source of performance problem, so no changes planned.