Bug 415170 - Cache loaded manifests
Summary: Cache loaded manifests
Status: RESOLVED WONTFIX
Alias: None
Product: PDE
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.4   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 4.3 M3   Edit
Assignee: PDE-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on: 283731 407765
Blocks:
  Show dependency tree
 
Reported: 2013-08-15 12:30 EDT by Curtis Windatt CLA
Modified: 2013-09-24 16:42 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Curtis Windatt CLA 2013-08-15 12:30:17 EDT
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).
Comment 1 Curtis Windatt CLA 2013-09-24 16:42:12 EDT
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.