Summary: | org.eclipse.update.configurator performs duplicate work even when off | ||||||
---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] Platform | Reporter: | Martin Oberhuber <mober.at+eclipse> | ||||
Component: | Update (deprecated - use Eclipse>Equinox>p2) | Assignee: | DJ Houghton <dj.houghton> | ||||
Status: | RESOLVED FIXED | QA Contact: | |||||
Severity: | normal | ||||||
Priority: | P3 | CC: | aleherb+eclipse, aniefer, b.kolb, caniszczyk, curtis.windatt.public, darin.eclipse, jeffmcaffer, john.arthorne, martin.gutschelhofer, pwebster, simon_kaegi, wbprio | ||||
Version: | 3.6 | Keywords: | performance | ||||
Target Milestone: | 3.6 M6 | ||||||
Hardware: | PC | ||||||
OS: | All | ||||||
Whiteboard: | |||||||
Bug Depends on: | |||||||
Bug Blocks: | 309668 | ||||||
Attachments: |
|
Description
Martin Oberhuber
2010-03-03 07:41:52 EST
Do you have org.eclipse.update.reconcile=false set in your config.ini? Yes we do, still we observe the 2.5sec performance hit. FYI, we have around 900 bundles in total, around 700 of them in .link locations with only the core Platform not in a .link. It looks like this code is called in the PlatformConfiguration#startup method. Perhaps we could get away with a lazy initializer in #getCurrent. Created attachment 160808 [details]
Potential fix
I think it shouldn't even be doing this link analysis when org.eclipse.update.reconcile=false, because p2 will be doing all this analysis and updating the platform.xml already. Looking at the code in PlatformConfiguration.configureExternalLinks(), all it does is parse the links and make sure they match what is in the platform.xml (which will always be true if p2 is reconciling).
Here is a potential fix that removes this link analysis when org.eclipse.update.reconcile=false. I tried some simple tests with link files and it is all still working correctly. Martin, do you want to give this a try in your product?
(In reply to comment #4) > Created an attachment (id=160808) [details] > Potential fix This works nicely! It gives us the same performance gain as renaming "links" to "dropins". There is one thing which puzzles me. Even if we set autostart=false for the org.eclipse.update.configurator bundle in the bundles.info of the installation, the bundles.info created in the user configuration area has the autostart flag set to true again. I have no idea why or how this flag changes. Since the fix is verified to work perfectly fine, is there a chance getting this released into 3.6m6 ? (In reply to comment #7) > Since the fix is verified to work perfectly fine, is there a chance getting > this released into 3.6m6 ? Note that as far as I can tell, the real fix in attached patch is just 2 lines of code which look absolutely reasonable. All the rest is just formatting changes. DJ has just been doing some additional testing on this to make sure none of the legacy update manager scenarios are affected by the change. DJ, I have tentatively marked M6 but if you see any risk here we can move to M7. I need to do some additional testing as I ran into another problem since my example site had a space in the URL. (bug 304895) Ok, I think this is good for M6. John or Andrew, please release the patch to HEAD and tag the update.configurator bundle for the next build. Thanks. Released. Thanks for the extra review and testing DJ. Awsome. Thanks all! |