I noticed a few weeks ago, after updating to the latest 4.7 I-build (at the time) that my debug instances seemed to take a long time to startup when launching with all plugins (> 30 seconds). With the update to I20170510-2000, I'm now seeing this when launching my IDE, both after installing an update or with `-clean`. Running with `org.eclipse.osgi/debug/bundleTime=true` shows:
Finding activator for org.eclipse.osgi_3.12.0.v20170510-2118 [0] Starting org.eclipse.osgi_3.12.0.v20170510-2118 [0] End starting org.eclipse.osgi_3.12.0.v20170510-2118 [0] 91 Time to load bundles: 75 Finding activator for org.eclipse.equinox.simpleconfigurator_1.2.0.v20170110-1705 [3] Starting org.eclipse.equinox.simpleconfigurator_1.2.0.v20170110-1705 [3] End starting org.eclipse.equinox.simpleconfigurator_1.2.0.v20170110-1705 [3] 59629
Attaching YourKit, I see that a significant amount of time in spent in Object.hashCode(), as called from org.apache.felix.resolver.util.OpenHashMap#get(), usually from ResolverImpl#getPackages() and ResolverImpl#getPackageSources(). OpenHashMap doesn't do anything clever with its secondary hash, and so turns into a linear search.
I have nearly 1200 bundles at this point (!). I guess some of them must have a large number of package imports or exports?
Is there something I should look at in particular?
Brian. |