[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Slow startup times in simpleconfigurator

Oops, I meant to include some screenshots from YourKit:

Hotspots:

Call tree from slow call:


On 12-May-2017, at 1:46 PM, Brian de Alwis <briandealwis@xxxxxxxxx> wrote:

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.

PNG image

PNG image