Bug 75130 [Workbench] Workbench could avoid re-reading feature ini's to speed startup
Build 3.0.1. This is a very small improvement, but it was large enough to show up on my list of potential optimizations. Essentially it avoids re-reading the feature INI's on startup. Our product has LOTS of feature plug-ins (103), so this adds up. Attached is the proposed change; it isn't sophisticated, essentially saying "if I had at least one tips and tricks / welcome page before, I probably have one now". To be more robust, the stored preference would have to be cleared on a -clean. The net savings on a 3GHz P4 / 2G RAM was 181ms for multiple warm runs. It obviously should be a tad larger for cold runs on a less performant machine.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/WorkbenchActionBuilder.java
resourceListener = new IResourceChangeListener() {
			public void resourceChanged(IResourceChangeEvent event) {
				IResourceDelta delta = event.getDelta();
				if (delta == null)
					return;
				IResourceDelta[] projectDeltas = delta.getAffectedChildren();
				for (int i = 0; i < projectDeltas.length; i++) {
					int kind = projectDeltas[i].getKind();
					
					boolean changed = (projectDeltas[i].getFlags() & (IResourceDelta.DESCRIPTION | IResourceDelta.OPEN)) != 0;
					if (kind != IResourceDelta.CHANGED || changed) {
						updateBuildActions();
						return;
					}
				}
			}
		};
		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceListener, IResourceChangeEvent.POST_CHANGE);
    }
    public void fillActionBars(int flags) {
        super.fillActionBars(flags);
        if ((flags & FILL_PROXY) == 0) {
            updateBuildActions();
            hookListeners();
        }
    }
    /**
     * Fills the coolbar with the workbench actions.
     */