FIGHTING COLD STARTUP ISSUES
FOR YOUR KOTLIN LAMBDA WITH
GRAALVM
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
COLD STARTUP
Slide 4
Slide 4 text
WHAT IS COLD STARTUP
Slide 5
Slide 5 text
COLD STARTUP AND THE JVM
What is happening during JVM startup?
JIT compilation
garbage collection
class loading
static initialization
...
Slide 6
Slide 6 text
COLD STARTUP AND THE JVM
Yan Cui - aws lambda – compare coldstart time...
Slide 7
Slide 7 text
AWS re:Invent 2018: [REPEAT 1] Inside AWS: Technology Choices for Modern Applications (SRV305-R1)
Slide 8
Slide 8 text
GRAALVM
Slide 9
Slide 9 text
GRAALVM
For existing Java applications,
GraalVM can provide benefits by
running them faster, ... creating ahead-
of-time compiled native images.
- https://www.graalvm.org/docs/why-graal/
Slide 10
Slide 10 text
GRAALVM - NATIVE IMAGES
GraalVM can create native images for existing JVM-
based applications
native image generation employs static analysis to
find any code reachable from the main Java method
the reachable code is then compiled AOT into
machine code
the resulting executable is self-contained (contains
VM components)
CUSTOM AWS LAMBDA RUNTIMES
open up AWS Lambda for any programming
language
a runtime is a program that runs the Lambda
handler
can be included in the deployment package
Slide 15
Slide 15 text
CUSTOM AWS LAMBDA RUNTIMES
Slide 16
Slide 16 text
DEMO
Slide 17
Slide 17 text
SHOW ME THE NUMBERS
Observed cold startup times
Slide 18
Slide 18 text
CONCLUSION
GraalVM native images greatly reduce startup time
native image also seem to improve runtime
performance
creating native images for an application is
cumbersome
native image generation is slow
Slide 19
Slide 19 text
Questions?
Slide 20
Slide 20 text
https://gitpitch.com/mduesterhoe /kotlin-
graalvm-custom-aws-lambda-runtime-talk
mduesterhoe /kotlin-graalvm-custom-aws-
lambda-runtime-talk
Blog: Fighting cold startup issues for your Kotlin
Lambda with GraalVM