In dit project wordt de opstarttijd en response tijd van verschillende runtimes vergeleken. Er wordt een vergelijking gemaakt tussen:
- Java (GraalVM en Quarkus)
- Python
- JavaScript
- TypeScript
In elke taal is een simpele applicatie opgezet die communiceert met een DynamoDB table. Er kunnen POST, GET en DELETE requests uitgevoerd worden.
Om de tests te draaien moet elk van de vier versie gedeployed worden.
- Voor de JavaScript, TypeScript en Python versies:
sam build sam deploy
- Voor de Java versie:
mvn clean package -Pnative sam deploy
In de performance-tests directory is een Gatling test te vinden die de responsetijden kan testen. Die kunnen als volgt gebruikt worden:
npm install --save-dev `@gatling.io/cli
cd performance-tests
npm install
npx gatling run
De voorgaande tests zorgt voor het initialiseren van de AWS Lambda functies. Op basis daarvan kan data verkregen worden rondom de cold start prestaties. De cold start data kan als volgt opgehaald worden:
cd init-duration-performance
.\generate_cold_start_report.ps1
De resultaten zijn vervolgens in cold-start-performance.md