Community
Participate
Working Groups
Currently PDE loads the manifest from many bundles three times in a typical development scenario (and API tools does it an additional time to create a baseline). Loading a properties file is usually fast,depending on I/O speed, but as there can be hundreds of plug-ins there is significant performance potential. API Tools: BundleComponent.getManifest() Target Platform: TargetBundle.initialize(File) Model Manager: MinimalState.addBundle(File, long) Launching / etc: TargetPlatformHelper.getSymbolicName(String) We should look at either caching the maps, or reducing the duplication of work. TargetPlatformHelper probably has a model for the location which could be used to lookup the name instead. The target platform could provide the loaded map to the model manager (though we have to avoid API changes and could be affected by Bug 283731).
Caching does not appear to be worth the memory loss. Testing on a Win7 machine with a 500Gig hard disk drive, loading a manifest takes milliseconds with repeat calls taking less than 1 ms. Unlike API Tools, PDE cares about a lot of manifest headers, making compaction of the cache impractical. It would still be beneficial for the external model manager to reuse the loaded manifests from the target definition over parsing them again, but as I will not have time change this, I am closing this bug as WONTFIX.