Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ahead-of-time compilation for MyBatis Mappings #86

Open
tobiasschaefer opened this issue Sep 25, 2020 · 1 comment
Open

Ahead-of-time compilation for MyBatis Mappings #86

tobiasschaefer opened this issue Sep 25, 2020 · 1 comment

Comments

@tobiasschaefer
Copy link
Collaborator

tobiasschaefer commented Sep 25, 2020

Currently, during startup of an application most time is lost when building the process engine. Specifically, it's during the MyBatis Initialization when parsing the XML mappings which takes several seconds.

Idea: use the ahead-of-time compilation concept of Micronaut to parse the MyBatis Mappings during build time and create a Java-Code representation.

This will reduce the startup time tremendously.

@tobiasschaefer tobiasschaefer changed the title Ahead-of-time compilation for MyBatis Mapping Ahead-of-time compilation for MyBatis Mappings Sep 25, 2020
@tobiasschaefer
Copy link
Collaborator Author

Some ideas

  • let's first serialize the configuration (maybe even to an absolute path) and if a parameter is set then deserialize the configuration (and skip reading the XML configuration). If this POC is successful (start is fast) we can continue to move the serialization to the build phase
  • let's use Kryo to serialize the configuration object
  • we might be able to exclude some dependencies from the runtime, e.g. dependencies of MyBatis e.g. XML parser
  • once the startup is faster we can use inspectIT, see also Performance-Analysis of Camunda Process Engine #19, to find the next bottle neck

arolfes added a commit to arolfes/micronaut-camunda-bpm that referenced this issue Dec 29, 2021
arolfes added a commit to arolfes/micronaut-camunda-bpm that referenced this issue Dec 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant