Micronaut: Simplified GraalVM native image building with built-in support
Micronaut: Refactored from controller to handler methods as both Quarkus and Spring example are using a functional approach rather than a controller approach.
Micronaut: Used URLHttpConnection instead of default client in Micronaut sample, as both Spring & Quarkus were using it as well
Quarkus & Spring: Added Tiered compilation to Quarkus & Spring JVM applications as Micronaut example was using Tiered as well
New benchmark results (Only tested with 50 concurrent requests / s for 60 seconds - which should give a first impression):
Micronaut JVM:
Current p50 cold start: 8505 vs. new p50 cold start: 4835 = +45% Improvement
Quarkus JVM:
Current p50 cold start: 6384 vs. new p50 cold start: 3755 = +42% Improvement
Spring JVM:
Current p50 cold start: 12673 vs. new p50 cold start: 5370 = +58% Improvement
Micronaut Native:
ps: Didn't add other native results as they should be similar as there were no changes.
Small caveat:
Had to add reflect config to Micronaut sample since the handler is loaded dynamically via the Env-Var + logging classes from the AWS SDK.
Ask for input:
I would appreciate if someone would contribute a full load test to this example and add the updated numbers (Maybe @dmahapatro or @muraria ). Both for double-checking as well as filtering out variance.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Description of changes:
New benchmark results (Only tested with 50 concurrent requests / s for 60 seconds - which should give a first impression):
Micronaut JVM:
Current p50 cold start: 8505 vs. new p50 cold start: 4835 = +45% Improvement
Quarkus JVM:
Current p50 cold start: 6384 vs. new p50 cold start: 3755 = +42% Improvement
Spring JVM:
Current p50 cold start: 12673 vs. new p50 cold start: 5370 = +58% Improvement
Micronaut Native:
ps: Didn't add other native results as they should be similar as there were no changes.
Small caveat:
Ask for input:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.