Bug 544319 - Costly bean inspection during load of application model
Summary: Costly bean inspection during load of application model
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.11   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-02-11 00:49 EST by Karsten Thoms CLA
Modified: 2020-03-31 08:57 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Karsten Thoms CLA 2019-02-11 00:49:41 EST
I'm observing during startup that much time is spent in ModelAssembler. This seems to belong to some logic in JXPath that tries to look up bean infos. The introspection tries to find classes that don't exist, and this is tried for a lot of class loading contexts, which impacts startup performance.

The following places can be used for debugging start points:
- org.apache.commons.jxpath.JXPathIntrospector.findInformant(Class)
  Tries to find classes with suffix "XBeanInfo" for several application model element classes
- java.beans.Introspector.findCustomizerClass(Class<?>)
  Tries to find classes with suffix "Customizer" for several application model element classes

In my platform dev environment starting a runtime instance takes 11s in Introspector#findCustomizerClass.
  
By avoiding to load these non-existing classes the startup time can be improved.
Comment 1 Karsten Thoms CLA 2019-02-11 00:59:23 EST
StringModelFragmentImpl#mergeXPath() is called in this context, which does some EMF related XPath setup. The bundle providing EMF/XPath integration is org.eclipse.e4.emf.xpath. It seems that this should make already sure that bean infos for EMF classes are provided, but somehow this does not work here. I have to investigate further.
Comment 2 Lars Vogel CLA 2020-03-31 08:57:35 EDT
Karsten, are you still planning to work on this?