openArchitectureWare

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.