GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com โ€” GitHub - GoodforGod/awslambda-java-examples: ๐Ÿงช AWS Lambda Java GraalVM examples & Benchmark.

BranchesTags
Open more actions menu

Latest commit

 

History

145 Commits
145 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
config
config
 
 
docs
docs
 
 
gradle/wrapper
gradle/wrapper
 
 
micronaut-application-dynamodb
micronaut-application-dynamodb
 
 
micronaut-application-helloworld
micronaut-application-helloworld
 
 
micronaut-application-http
micronaut-application-http
 
 
micronaut-function-dynamodb
micronaut-function-dynamodb
 
 
micronaut-function-helloworld
micronaut-function-helloworld
 
 
micronaut-function-http
micronaut-function-http
 
 
quarkus-dynamodb
quarkus-dynamodb
 
 
quarkus-helloworld
quarkus-helloworld
 
 
quarkus-http
quarkus-http
 
 
simplelambda-auroradb
simplelambda-auroradb
 
 
simplelambda-dynamodb
simplelambda-dynamodb
 
 
simplelambda-helloworld
simplelambda-helloworld
 
 
simplelambda-http
simplelambda-http
 
 
simplelambda-micronaut-dynamodb
simplelambda-micronaut-dynamodb
 
 
simplelambda-micronaut-helloworld
simplelambda-micronaut-helloworld
 
 
simplelambda-micronaut-http
simplelambda-micronaut-http
 
 
spring-dynamodb
spring-dynamodb
 
 
spring-helloworld
spring-helloworld
 
 
spring-http
spring-http
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
build.gradle
build.gradle
 
 
gradle.properties
gradle.properties
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
settings.gradle
settings.gradle
 
 

Repository files navigation

AWSLambda Java Examples

Minimum required Java version GitHub Action

Repository with AWSLambda examples for different frameworks Java Frameworks compiled for GraalVM such:

  • Micronaut
  • Spring
  • Quarkus
  • SimpleLambda

Benchmark

Benchmark tries to compare different Java frameworks that can be used to build AWS Lambda Function. Benchmark compares cold start time, hot start time, building process, etc.

GraalVM Versions

All examples use GraalVM 22.3.0 cause at that time Spring & Quarkus latest available GraalVM build image was GraalVM 22.3.0. Those frameworks are limited by their plugins/buildpacks/etc, so you can't use latest available GraalVM native image released, all depends on framework toolkit which upgrades with lag.

Thus, Micronaut & SimpleLambda have advantage as GraalVM building process & Jar building process can be easily independent.

Framework Versions

Spring Boot Spring Cloud Micronaut Quarkus SimpleLambda
3.1.3 4.0.5 4.0.3 3.3.0 1.0.0

Cold Start

Test data is collected based on 5 runs and average for each value is present in table below:

Framework Spring Quarkus Micronaut (Application) Micronaut (Function) SimpleLambda + Micronaut SimpleLambda
Build (ms) 527.4 349.0 442.8 398.8 278.5 237.1
Duration (ms) 212.1 236.5 110.9 63.2 18.3 31.8
Billed (ms) 739.8 586.0 554.2 462.4 297.2 282.6
Memory (Mb) 115 76 89 83 60 52

Hot Start

Test data is collected based on 5 runs and average for each value is present in table below:

Framework Spring Quarkus Micronaut (Application) Micronaut (Function) SimpleLambda + Micronaut SimpleLambda
Duration (ms) 2.9 1.2 1.9 1.8 1.4 1.4
Billed (ms) 3.2 2.0 2.2 2.0 2.0 2.0
Memory (Mb) 115 76 90 84 61 53

Hot start billed time is same across all competitors cause when function is instantiated it performs relatively fast.

Build Time

Data is based on build benchmark in GitHub CI action:

Framework Spring Quarkus Micronaut (Application) Micronaut (Function) SimpleLambda + Micronaut SimpleLambda
Build Time (sec) 500 427 298 293 185 200

Build Size

Result function zip archive size in Mb:

Framework Spring Quarkus Micronaut (Application) Micronaut (Function) SimpleLambda + Micronaut SimpleLambda
Size (Mb) 23.9 14.7 16.9 15.7 11.2 9.86

Functionality

Table with some useful and interesting functionality that some frameworks provides, so it won't look that some frameworks are bad and others are great.

Framework Spring Quarkus Micronaut (Application) Micronaut (Function) SimpleLambda + Micronaut SimpleLambda
DI & IoC โœ”๏ธ โœ”๏ธ โœ”๏ธ โŒ โœ”๏ธ โŒ
AWS Gateway Support โŒ โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ
AWS Gateway Routing ๐Ÿ”ท ๐Ÿ”ท โœ”๏ธ โŒ โŒ โŒ
AWS Integrations โœ”๏ธ โœ”๏ธ โœ”๏ธ โŒ โœ”๏ธ โŒ
GraalVM Metadata Auto Auto Auto/Manual Auto/Manual Auto/Manual Auto/Manual

About

๐Ÿงช AWS Lambda Java GraalVM examples & Benchmark.

goodforgod.dev/awslambda-java-examples/

Topics

awsaws-lambdabenchmarkexampleslambdamicronautquarkussimple-lambdaspringspring-bootspring-cloud-function

Resources

Readme
Apache-2.0 license
Activity

Stars

4 stars

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402520 โ€” GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800ร—600. No cookies required.