Skip to content

Startup performance issue with OpenAPI #2558

@loicmathieu

Description

@loicmathieu

Describe the bug
Startup performance degradation between releases observed specifficaly when using the OpenAPI extention.

Expected behavior
Startup performance should be better or at least consistent between releases.

Actual behavior
Switching Quarkus versions with the stock demo OpenAPI application from the tutorial, we can see the following augmentation time increasing releases after releases:

  • 0.15.0 (smallrye-openapi:1.1.3) => Quarkus augmentation completed in 1336ms
  • 0.14.0 (smallrye-openapi:1.1.1) => Quarkus augmentation completed in 1258ms
  • 0.13.0 (smallrye-openapi:1.1.1) => Quarkus augmentation completed in 1109ms
  • 0.12.0 (smallrye-openapi:1.1.1) => Quarkus augmentation completed in 1020ms

In a "real world apps" with the following features :
groal, cdi, flyway, hibernate-orm, hibernate-validator, jdbc-postgresql, narayana-jta, resteasy, resteasy-jsonb, smallrye-health, smallrye-metrics, smallrye-openapi, swagger-ui we can see a big degradation in the Quarkus augmentation time between the release 0.13 and 0.14 and a medium one between 0.14 and 0.15:

  • 0.15 => Quarkus augmentation completed in 2561ms
  • 0.14 => Quarkus augmentation completed in 2154ms
  • 0.13 => Quarkus augmentation completed in 1445ms

I didn't have time to dig deeper but if someone point me to some changes between 0.13 and 0.14 that can be related or at least to what is done at augmentation time for OpenAPI (we didn't see this kind of startup performance degradation without it) I can investiguate.

To Reproduce
Steps to reproduce the behavior:

  1. Create an API with documentation (the more the best)
  2. Try with current version
  3. Try with version 0.13

Environment (please complete the following information):

  • Output of uname -a or ver: Linux 5.0.0-15-generic Automatic Hibernate bytecode enhancement #16-Ubuntu SMP Mon May 6 17:41:33 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
  • Output of java -version: openjdk version "11.0.3" 2019-04-16
  • GraalVM version (if different from Java): not tested with GraalVM
  • Quarkus version or git rev: 0.15.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions