Community
Participate
Working Groups
Created attachment 274261 [details] Screenshot: Profiler I am examining a UI test class and the target platform resolution takes a while. The profiler shows a hot spot for StateImpl#getBundles, which takes ~9s during the startup of the plugin test. I employed a counter and this shows me that the method is called 16.800 times on a bundleDescriptions list with 16.822 entries. It does a sequential search for bundles with the searched name. It would be more efficient when the bundle names are looked up in a map. This would reduce the time to almost nothing.
Makes sense to me. If you want to contribute then be aware that any new Map<String, Collection<BundleDescripton> should be managed in StateImpl.removeBundle and StateImpl.basicAddBundle and StateImpl.updateBundle. Basically any time the org.eclipse.osgi.internal.resolver.StateImpl.bundleDescriptions KeyedHashSet is modified.
New Gerrit change created: https://git.eclipse.org/r/123787
Any chance that this could make it still into Photon?
(In reply to Karsten Thoms from comment #3) > Any chance that this could make it still into Photon? I think it is too late for that. At this point we are just releasing blockers. AFAICT this performance issue has been around for many releases.
OK, thought so. Will be the first improvement for 4.9 then :)
Gerrit change https://git.eclipse.org/r/123787 was merged to [master]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/?id=757232e1946b4c1cadc5905014b83e444bd7a909