Community
Participate
Working Groups
PDE does a full state resolution the first time the PDE classpath container is used. I observed this behavior while debugging bug 181327. Here is what I think is going on (Wassim and others correct me if I'm wrong) - PDE caches a copy of the target state which contains the BundleDescriptions of all the binary bundles in the target. - PDE caches a copy of the workspace state which contains the BundleDescriptions of all the bundles in the workspace. - The first time the PDE classpath container is used both the workspace and target states are read from disk into memory. - A third state (or maybe one of the loaded states?) is used to merge the two states into one. - A full resolution is then performed on the merged state. This is not an issue for smaller targets (<150 like the sdk) because the resolver will do a full resolution in ~1ms per bundle. But as your target grows into the 1000s we are talking about 1000s of ms. To make matters worse, if you close a workspace with a PDE manifest editor open, on restart this full resolution takes place *before* the workspace is shown. This directly affects startup performance. Possible solutions: - Cache the merged resolved state and only reconstruct it if you notice the target or the workspace set of bundles has changed. - Figure out why PDE is doing full resolution at startup. Can this be done in the background, right now it happens on the main event loop.
I will look at this in M3
I am wary about doing such a change after M7. M7 is supposed to be used for performance improvements. If we cannot fit this in then I suggest we defer out of 3.5.
I'll leave it on the list for M7, but no guarantees.
deferred.
*** This bug has been marked as a duplicate of bug 326974 ***