Aleksandr-Filichkin / java-graalvm-aws-lambda

GraalVM implementation of AWS Lambda and performance comparison with other languages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AWS Lambda with Custom Runtime and GraalVM

Here you can see 6 implementations of the microservice: img.png

  • Java V1 - is the first Java implementation without optimisations
  • Java V2 - is the optimised Java version
  • Java V3 - is a GraalVM Lambda implementation
  • Go-lambda - is a Go implementation
  • Node-lambda - is a NodeJs implementation
  • Python-lambda - is a Python implementation

Build and deploy

Requirements:

  • Docker
  • Maven
  • Java 11
  • NPM
  • Golang
  • SAM

to deploy the service just run:

sh build.sh

Performance result:

Cold start img_1.png

Warmed up (256Mb Lambda, ~3000 iterations for the 1 lambda) img.png

About

GraalVM implementation of AWS Lambda and performance comparison with other languages


Languages

Language:Java 79.3%Language:Go 9.4%Language:JavaScript 4.9%Language:Shell 2.4%Language:Python 2.4%Language:Dockerfile 1.7%