SlideShare a Scribd company logo
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Oleg Šelajev
GraalVM team, Oracle Labs
@shelajev
Native Images
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
The following is intended to provide some insight into a line of research in Oracle
Labs. It is intended for information purposes only, and may not be incorporated
into any contract. It is not a commitment to deliver any material, code, or
functionality, and should not be relied upon in making purchasing decisions. The
development, release, and timing of any features or functionality described in
connection with any Oracle product or service remains at the sole discretion of
Oracle. Any views expressed in this presentation are my own and do not
necessarily reflect the views of Oracle.
2
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !3
Seeing is believing
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !4
Fast Java, Scala, Kotlin, Groovy, Clojure...
Instant startup, low footprint
Polyglot & embeddable
Interoperability between languages: node.js, Python, Ruby, R
Why GraalVM?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !5
Fast Java, Scala, Kotlin, Groovy, Clojure...
Instant startup, low footprint
Polyglot & embeddable
Interoperability between languages: node.js, Python, Ruby, R
Why GraalVM?
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !6
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !7
GraalVM native images
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !8
Native images
• Full AOT compilation to machine code
• Works with memory management
• Secure execution (e.g., bounds checks)
• Embeddable with native applications
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !9
Native images
• Full AOT compilation to machine code
• Works with memory management
• Secure execution (e.g., bounds checks)
• Embeddable with native applications
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !11
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !12
Image build time Runtime
Native image lifecycle
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !13
Static initializers
Static class initialization blocks, pre-initialized static variables.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !14
Static initializers
By default static class initialization is done
during native image construction.
Large static data structures are pre-allocated
allowing faster startup of the generated image.
No instance-specific initializations can be done in static
initializers.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !15
Static initializers - things not to do
• start application threads that continue to run in the background
• load native libraries using `java.lang.Runtime.load(String)`
• open files or sockets, or
• allocate C memory, e.g., `java.nio.ByteBuffer.allocateDirect(int)`.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !16
Static initializers
Write your own initialization methods
and call them explicitly from your main entry point.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !17
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !18
> $JAVA_HOME/bin/javac HelloStartupTime.java
> $JAVA_HOME/bin/java HelloStartupTime
Startup: Fri Aug 31 13:17:05 PDT 2018
Now: Fri Aug 31 13:17:05 PDT 2018
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !19
> $JAVA_HOME/bin/javac HelloStartupTime.java
> $JAVA_HOME/bin/java HelloStartupTime
Startup: Fri Aug 31 13:17:05 PDT 2018
Now: Fri Aug 31 13:17:05 PDT 2018
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !20
> $JAVA_HOME/bin/javac HelloStartupTime.java
> $JAVA_HOME/bin/java HelloStartupTime
Startup: Fri Aug 31 13:17:05 PDT 2018
Now: Fri Aug 31 13:17:05 PDT 2018
> $JAVA_HOME/bin/native-image HelloStartupTime
> ./hellostartuptime
Startup: Fri Aug 31 13:22:12 PDT 2018
Now: Fri Aug 31 14:35:42 PDT 2018
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !21
Static initializers config
--initalize-at-build-time=package
--initialize-at-run-time=p.C1
-H:+PrintClassInitialization
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !22
Reflection
-H:ReflectionConfigurationFiles=
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !23
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !24
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !25
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !26
Resources
-H:IncludeResources=<regexp>
-H:IncludeResources=
"application.yml|META-INF/services/*.*"
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
-H:+ReportUnsupportedElementsAtRuntime
--allow-incomplete-classpath
!27
java.lang.NoClassDefFoundError
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !28
Substitutions
Core classes (annotations):
com.oracle.svm.core.annotate.TargetClass
com.oracle.svm.core.annotate.Substitute
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !29
Image build time vs runtime
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !30
native-image.properties
META-INF/native-image/
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !31
native-image.properties
META-INF/native-image/groupId/artifactId/
reflection-config.json
META-INF/native-image/groupId/artifactId/
native-image.properties
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !32
native-image.properties
ImageName = netty-server
Args = --features=com.oracle.svm.nettyplot.PlotterSingletonFeature 
       -H:ReflectionConfigurationResources=${.}/reflection-config.json 
       --delay-class-initialization-to-runtime=
io.netty.handler.codec.http.HttpObjectEncoder 
       -H:+SpawnIsolates
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
https://medium.com/graalvm/instant-netty-startup-using-graalvm-native-
image-generation-ed6f14ff7692
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !34
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 35
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 36
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !37
https://github.com/spring-projects/spring-framework/wiki/GraalVM-native-image-support
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !38
Work in progress
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !39
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !40
GC
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !41
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !42
Heapdump
-H:+AllowVMInspection
$ ps -e | grep native-name
$ kill -SIGUSR1 <pid>
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !43
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !44
Runtime
https://github.com/giltene/wrk2
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !45
Runtime
https://github.com/giltene/wrk2
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !46
https://github.com/PPACI/wrk2img
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !47
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !48
High performance, polyglot, language-level virtualization layer…
embeddable across the stack
in native and JVM-based applications.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !49
Ad

More Related Content

What's hot (20)

Quarkus k8s
Quarkus   k8sQuarkus   k8s
Quarkus k8s
Georgios Andrianakis
 
Micronaut: A new way to build microservices
Micronaut: A new way to build microservicesMicronaut: A new way to build microservices
Micronaut: A new way to build microservices
Luram Archanjo
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
VMware Tanzu
 
Gitlab ci-cd
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cd
Dan MAGIER
 
GraalVm and Quarkus
GraalVm and QuarkusGraalVm and Quarkus
GraalVm and Quarkus
Sascha Rodekamp
 
GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0
MoritzHalbritter
 
Docker multi-stage build
Docker multi-stage buildDocker multi-stage build
Docker multi-stage build
Alexei Ledenev
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
Brice Fernandes
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
Dongwon Kim
 
Quarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java frameworkQuarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java framework
SVDevOps
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
Noa Harel
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
Filipa Lacerda
 
Envoy and Kafka
Envoy and KafkaEnvoy and Kafka
Envoy and Kafka
Adam Kotwasinski
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
David Hahn
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
Thomas Wuerthinger
 
GraalVM Overview Compact version
GraalVM Overview Compact versionGraalVM Overview Compact version
GraalVM Overview Compact version
scalaconfjp
 
gRPC Overview
gRPC OverviewgRPC Overview
gRPC Overview
Varun Talwar
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
JEMLI Fathi
 
WebAssembly: In a Nutshell
WebAssembly: In a NutshellWebAssembly: In a Nutshell
WebAssembly: In a Nutshell
RangHo Lee
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniques
Red Hat Developers
 
Micronaut: A new way to build microservices
Micronaut: A new way to build microservicesMicronaut: A new way to build microservices
Micronaut: A new way to build microservices
Luram Archanjo
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
VMware Tanzu
 
GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0
MoritzHalbritter
 
Docker multi-stage build
Docker multi-stage buildDocker multi-stage build
Docker multi-stage build
Alexei Ledenev
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
Brice Fernandes
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
Dongwon Kim
 
Quarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java frameworkQuarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java framework
SVDevOps
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
Noa Harel
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
Filipa Lacerda
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
David Hahn
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
Thomas Wuerthinger
 
GraalVM Overview Compact version
GraalVM Overview Compact versionGraalVM Overview Compact version
GraalVM Overview Compact version
scalaconfjp
 
WebAssembly: In a Nutshell
WebAssembly: In a NutshellWebAssembly: In a Nutshell
WebAssembly: In a Nutshell
RangHo Lee
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniques
Red Hat Developers
 

Similar to GraalVM Native Images by Oleg Selajev @shelajev (20)

General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
Oracle Developers
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster Everywhere
J On The Beach
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
Shaun Smith
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
 
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
Taewan Kim
 
20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM
Taewan Kim
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
C4Media
 
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
Oracle Korea
 
Cloud Native Java:GraalVM
Cloud Native Java:GraalVMCloud Native Java:GraalVM
Cloud Native Java:GraalVM
Taewan alvin Kim
 
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
Miguel Araújo
 
OG Yatra - 25 years of hints and tips
OG Yatra - 25 years of hints and tipsOG Yatra - 25 years of hints and tips
OG Yatra - 25 years of hints and tips
Connor McDonald
 
OpenWorld 2018 - 20 years of hints and tips
OpenWorld 2018 - 20 years of hints and tipsOpenWorld 2018 - 20 years of hints and tips
OpenWorld 2018 - 20 years of hints and tips
Connor McDonald
 
Patching like a hero - DOAG
Patching like a hero -  DOAGPatching like a hero -  DOAG
Patching like a hero - DOAG
Rodrigo Mufalani
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
David Delabassee
 
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
David Buck
 
How To Visualize Graphs
How To Visualize GraphsHow To Visualize Graphs
How To Visualize Graphs
Jean Ihm
 
New opportunities for Developers With GraalVM
New opportunities for Developers With GraalVMNew opportunities for Developers With GraalVM
New opportunities for Developers With GraalVM
Alina Yurenko
 
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年6月24日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年6月24日)はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年6月24日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年6月24日)
オラクルエンジニア通信
 
Autonomous Data Warehouse
Autonomous Data WarehouseAutonomous Data Warehouse
Autonomous Data Warehouse
MarketingArrowECS_CZ
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
Oracle Developers
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster Everywhere
J On The Beach
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
Shaun Smith
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
 
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
Taewan Kim
 
20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM
Taewan Kim
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
C4Media
 
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
Oracle Korea
 
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
Miguel Araújo
 
OG Yatra - 25 years of hints and tips
OG Yatra - 25 years of hints and tipsOG Yatra - 25 years of hints and tips
OG Yatra - 25 years of hints and tips
Connor McDonald
 
OpenWorld 2018 - 20 years of hints and tips
OpenWorld 2018 - 20 years of hints and tipsOpenWorld 2018 - 20 years of hints and tips
OpenWorld 2018 - 20 years of hints and tips
Connor McDonald
 
Patching like a hero - DOAG
Patching like a hero -  DOAGPatching like a hero -  DOAG
Patching like a hero - DOAG
Rodrigo Mufalani
 
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
David Buck
 
How To Visualize Graphs
How To Visualize GraphsHow To Visualize Graphs
How To Visualize Graphs
Jean Ihm
 
New opportunities for Developers With GraalVM
New opportunities for Developers With GraalVMNew opportunities for Developers With GraalVM
New opportunities for Developers With GraalVM
Alina Yurenko
 
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年6月24日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年6月24日)はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年6月24日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年6月24日)
オラクルエンジニア通信
 
Ad

More from Oracle Developers (20)

Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Oracle Developers
 
Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019
Oracle Developers
 
Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.
Oracle Developers
 
Fn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal ArifFn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal Arif
Oracle Developers
 
Get ready for_an_autonomous_data_driven_future_ext
Get ready for_an_autonomous_data_driven_future_extGet ready for_an_autonomous_data_driven_future_ext
Get ready for_an_autonomous_data_driven_future_ext
Oracle Developers
 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Oracle Developers
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
Oracle Developers
 
Serverless Patterns by Jesse Butler
Serverless Patterns by Jesse ButlerServerless Patterns by Jesse Butler
Serverless Patterns by Jesse Butler
Oracle Developers
 
Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data
Oracle Developers
 
Artificial Intelligence
Artificial IntelligenceArtificial Intelligence
Artificial Intelligence
Oracle Developers
 
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Oracle Developers
 
Managing containers on Oracle Cloud by Jamal Arif
Managing containers on Oracle Cloud by Jamal ArifManaging containers on Oracle Cloud by Jamal Arif
Managing containers on Oracle Cloud by Jamal Arif
Oracle Developers
 
North America November Meetups
North America November MeetupsNorth America November Meetups
North America November Meetups
Oracle Developers
 
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
Oracle Developers
 
North America Meetups in September
North America Meetups in September North America Meetups in September
North America Meetups in September
Oracle Developers
 
Introduction to the Oracle Container Engine
Introduction to the Oracle Container EngineIntroduction to the Oracle Container Engine
Introduction to the Oracle Container Engine
Oracle Developers
 
Oracle Data Science Platform
Oracle Data Science PlatformOracle Data Science Platform
Oracle Data Science Platform
Oracle Developers
 
Persistent storage with containers By Kaslin Fields
Persistent storage with containers By Kaslin FieldsPersistent storage with containers By Kaslin Fields
Persistent storage with containers By Kaslin Fields
Oracle Developers
 
The Fn Project by Jesse Butler
 The Fn Project by Jesse Butler The Fn Project by Jesse Butler
The Fn Project by Jesse Butler
Oracle Developers
 
Silicon Valley JUG meetup July 18, 2018
Silicon Valley JUG meetup July 18, 2018Silicon Valley JUG meetup July 18, 2018
Silicon Valley JUG meetup July 18, 2018
Oracle Developers
 
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Oracle Developers
 
Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019
Oracle Developers
 
Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.
Oracle Developers
 
Fn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal ArifFn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal Arif
Oracle Developers
 
Get ready for_an_autonomous_data_driven_future_ext
Get ready for_an_autonomous_data_driven_future_extGet ready for_an_autonomous_data_driven_future_ext
Get ready for_an_autonomous_data_driven_future_ext
Oracle Developers
 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Oracle Developers
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
Oracle Developers
 
Serverless Patterns by Jesse Butler
Serverless Patterns by Jesse ButlerServerless Patterns by Jesse Butler
Serverless Patterns by Jesse Butler
Oracle Developers
 
Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data
Oracle Developers
 
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Oracle Developers
 
Managing containers on Oracle Cloud by Jamal Arif
Managing containers on Oracle Cloud by Jamal ArifManaging containers on Oracle Cloud by Jamal Arif
Managing containers on Oracle Cloud by Jamal Arif
Oracle Developers
 
North America November Meetups
North America November MeetupsNorth America November Meetups
North America November Meetups
Oracle Developers
 
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
Oracle Developers
 
North America Meetups in September
North America Meetups in September North America Meetups in September
North America Meetups in September
Oracle Developers
 
Introduction to the Oracle Container Engine
Introduction to the Oracle Container EngineIntroduction to the Oracle Container Engine
Introduction to the Oracle Container Engine
Oracle Developers
 
Oracle Data Science Platform
Oracle Data Science PlatformOracle Data Science Platform
Oracle Data Science Platform
Oracle Developers
 
Persistent storage with containers By Kaslin Fields
Persistent storage with containers By Kaslin FieldsPersistent storage with containers By Kaslin Fields
Persistent storage with containers By Kaslin Fields
Oracle Developers
 
The Fn Project by Jesse Butler
 The Fn Project by Jesse Butler The Fn Project by Jesse Butler
The Fn Project by Jesse Butler
Oracle Developers
 
Silicon Valley JUG meetup July 18, 2018
Silicon Valley JUG meetup July 18, 2018Silicon Valley JUG meetup July 18, 2018
Silicon Valley JUG meetup July 18, 2018
Oracle Developers
 
Ad

Recently uploaded (20)

Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 

GraalVM Native Images by Oleg Selajev @shelajev

  • 1. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Oleg Šelajev GraalVM team, Oracle Labs @shelajev Native Images
  • 2. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement The following is intended to provide some insight into a line of research in Oracle Labs. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in connection with any Oracle product or service remains at the sole discretion of Oracle. Any views expressed in this presentation are my own and do not necessarily reflect the views of Oracle. 2
  • 3. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !3 Seeing is believing
  • 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !4 Fast Java, Scala, Kotlin, Groovy, Clojure... Instant startup, low footprint Polyglot & embeddable Interoperability between languages: node.js, Python, Ruby, R Why GraalVM?
  • 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !5 Fast Java, Scala, Kotlin, Groovy, Clojure... Instant startup, low footprint Polyglot & embeddable Interoperability between languages: node.js, Python, Ruby, R Why GraalVM?
  • 6. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !6
  • 7. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !7 GraalVM native images
  • 8. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !8 Native images • Full AOT compilation to machine code • Works with memory management • Secure execution (e.g., bounds checks) • Embeddable with native applications
  • 9. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !9 Native images • Full AOT compilation to machine code • Works with memory management • Secure execution (e.g., bounds checks) • Embeddable with native applications
  • 10. Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
  • 11. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !11
  • 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !12 Image build time Runtime Native image lifecycle
  • 13. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !13 Static initializers Static class initialization blocks, pre-initialized static variables.
  • 14. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !14 Static initializers By default static class initialization is done during native image construction. Large static data structures are pre-allocated allowing faster startup of the generated image. No instance-specific initializations can be done in static initializers.
  • 15. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !15 Static initializers - things not to do • start application threads that continue to run in the background • load native libraries using `java.lang.Runtime.load(String)` • open files or sockets, or • allocate C memory, e.g., `java.nio.ByteBuffer.allocateDirect(int)`.
  • 16. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !16 Static initializers Write your own initialization methods and call them explicitly from your main entry point.
  • 17. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !17
  • 18. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !18 > $JAVA_HOME/bin/javac HelloStartupTime.java > $JAVA_HOME/bin/java HelloStartupTime Startup: Fri Aug 31 13:17:05 PDT 2018 Now: Fri Aug 31 13:17:05 PDT 2018
  • 19. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !19 > $JAVA_HOME/bin/javac HelloStartupTime.java > $JAVA_HOME/bin/java HelloStartupTime Startup: Fri Aug 31 13:17:05 PDT 2018 Now: Fri Aug 31 13:17:05 PDT 2018
  • 20. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !20 > $JAVA_HOME/bin/javac HelloStartupTime.java > $JAVA_HOME/bin/java HelloStartupTime Startup: Fri Aug 31 13:17:05 PDT 2018 Now: Fri Aug 31 13:17:05 PDT 2018 > $JAVA_HOME/bin/native-image HelloStartupTime > ./hellostartuptime Startup: Fri Aug 31 13:22:12 PDT 2018 Now: Fri Aug 31 14:35:42 PDT 2018
  • 21. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !21 Static initializers config --initalize-at-build-time=package --initialize-at-run-time=p.C1 -H:+PrintClassInitialization
  • 22. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !22 Reflection -H:ReflectionConfigurationFiles=
  • 23. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !23
  • 24. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !24
  • 25. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !25
  • 26. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !26 Resources -H:IncludeResources=<regexp> -H:IncludeResources= "application.yml|META-INF/services/*.*"
  • 27. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. -H:+ReportUnsupportedElementsAtRuntime --allow-incomplete-classpath !27 java.lang.NoClassDefFoundError
  • 28. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !28 Substitutions Core classes (annotations): com.oracle.svm.core.annotate.TargetClass com.oracle.svm.core.annotate.Substitute
  • 29. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !29 Image build time vs runtime
  • 30. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !30 native-image.properties META-INF/native-image/
  • 31. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !31 native-image.properties META-INF/native-image/groupId/artifactId/ reflection-config.json META-INF/native-image/groupId/artifactId/ native-image.properties
  • 32. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !32 native-image.properties ImageName = netty-server Args = --features=com.oracle.svm.nettyplot.PlotterSingletonFeature        -H:ReflectionConfigurationResources=${.}/reflection-config.json        --delay-class-initialization-to-runtime= io.netty.handler.codec.http.HttpObjectEncoder        -H:+SpawnIsolates
  • 33. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. https://medium.com/graalvm/instant-netty-startup-using-graalvm-native- image-generation-ed6f14ff7692
  • 34. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !34
  • 35. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 35
  • 36. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 36
  • 37. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !37 https://github.com/spring-projects/spring-framework/wiki/GraalVM-native-image-support
  • 38. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !38 Work in progress
  • 39. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !39
  • 40. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !40 GC
  • 41. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !41
  • 42. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !42 Heapdump -H:+AllowVMInspection $ ps -e | grep native-name $ kill -SIGUSR1 <pid>
  • 43. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !43
  • 44. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !44 Runtime https://github.com/giltene/wrk2
  • 45. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !45 Runtime https://github.com/giltene/wrk2
  • 46. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !46 https://github.com/PPACI/wrk2img
  • 47. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !47
  • 48. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !48 High performance, polyglot, language-level virtualization layer… embeddable across the stack in native and JVM-based applications.
  • 49. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !49