Improving the performance of OAW
openArchitectureWare
Inspired by this discussion, you can create a new component in your workflow which will load a model from memory:
This can then be instantiated in your workflow:
This can save up to 20% of your execution time in some cases.
First
Make sure you follow the golden rule of performance optimisation; find out what needs optimising, rather than guessing wildly in the dark.Using an in-memory model
If in your workflow, you are exporting a model to a file, and then re-loading that model using the org.eclipse.mwe.emf.Reader component, you can be spending a lot of time on this unnecessary serialisation process.Inspired by this discussion, you can create a new component in your workflow which will load a model from memory:
<component class="org.openiaml.model.codegen.php.CurrentModel"> <modelSlot value="model" /> </component>This allows you to create your own workflow component, CurrentModel, which can keep a reference to the model.
This can then be instantiated in your workflow:
CurrentModel.setCurrentModel(model); // execute workflow CurrentModel.setCurrentModel(null);
This can save up to 20% of your execution time in some cases.