SlideShare a Scribd company logo
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Run programs faster
everywhere 
Oleg Šelajev
GraalVM team, Oracle Labs
@shelajev
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
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !4
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !5
Fast Java, Scala, Kotlin, Groovy, Clojure...
Instant startup, low footprint
Polyglot & embeddable VM
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
Java HotSpot VM
GraalVM Compiler
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !8
Java HotSpot VM
GraalVM Compiler
Truffle Framework
LLVM
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !10
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 11
• More performance
• Smaller footprint
• Managed runtime for better
isolation when running native code
• Oracle Enterprise Support 7x24x365
Launching earlier this month:

GraalVM Enterprise 19.0
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !13
Renaissance suite
https://renaissance.dev
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !14
Streams API example benchmarks
https://medium.com/graalvm/stream-api-performance-with-graalvm-be6cfe7fbb52
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !15
sbt > clean; compile;
https://medium.com/graalvm/compiling-scala-faster-with-graalvm-86c5c0857fa3
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !16
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !17
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !18
Matrix multiplication
https://www.youtube.com/watch?v=RFF2SfPMfpk
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !19
valhallaBench.Multiply.multiply (lower is better)
JDK 11 (size) Mode Cnt Score Error Units
valhallaBench.Multiply.multiply 100 avgt 3 7944.935 ± 1963.931 us/op
JDK11 + Graal (size) Mode Cnt Score Error Units
valhallaBench.Multiply.multiply 100 avgt 3 3450.944 ± 1130.123 us/op
GraalVM EE 1.0-rc8 (size) Mode Cnt Score Error Units
valhallaBench.Multiply.multiply 100 avgt 3 3134.066 ± 518.812 us/op
Matrix multiplication
2.3x
2.5x
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !20
https://twitter.com/janiszt/status/1091678397523283968
22
libgraal previous setup
New in GraalVM 19: libgraal
Use Native-Image to compile
the GraalVM compiler and
link in HotSpot
• Faster startup
• No profile pollution
• Separate heap for

the compiler
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !23
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !25
ECMAScript 6 compatibility
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !26
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !27
Graal.js on JDK11
https://github.com/graalvm/graal-js-jdk11-maven-demo
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !28
https://www.youtube.com/watch?v=mRKjWrNJ8DI
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !29
https://medium.com/graalvm/faster-r-with-fastr-4b8db0e0dceb
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !30
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !31
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !32
https://medium.com/graalvm/analyzing-the-heap-of-graalvm-polyglot-applications-b9963e68a6a
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !33
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !34
GraalVM native images
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !35
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. !36
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !37
Now, you can profile any running
program in HotSpot to generate a
configuration file for native image
You can run it multiple times to
exhaust all of the reflective test
paths (proxies, JNI, reflection)
New in GraalVM 19: 

native-image trace agent
Previously, to use Native Image with
reflection*, you needed a
configuration file
You could build it by hand, or use a
framework to generate it
$JAVA_HOME/bin/java -agentlib:native-
image-agent=config-output-dir=META-INF/
native-image/ HelloReflection foo bar

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !39
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !40
Work in progress
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !41
https://medium.com/graalvm/safe-and-sandboxed-execution-of-native-code-f6096b35c360
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !42
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. !43
Fast Java, Scala, Kotlin, Groovy, Clojure...
Instant startup, low footprint
Polyglot & embeddable VM
Interoperability between languages: node.js, Python, Ruby, R
Why GraalVM?

More Related Content

What's hot (20)

PDF
GraalVM Native and Spring Boot 3.0
MoritzHalbritter
 
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
 
PPTX
Spring boot
Gyanendra Yadav
 
PDF
Spring boot introduction
Rasheed Waraich
 
PDF
JavaFX Overview
José Maria Silveira Neto
 
PDF
Spring Native and Spring AOT
VMware Tanzu
 
PPS
Java Hibernate Programming with Architecture Diagram and Example
kamal kotecha
 
PPT
Spring ppt
Mumbai Academisc
 
PDF
REST API に疲れたあなたへ贈る GraphQL 入門
Keisuke Tsukagoshi
 
PPTX
What's new in Java 11
Michel Schudel
 
PDF
Spring Boot
Pei-Tang Huang
 
PPTX
Spring boot
sdeeg
 
PDF
Spring Boot
Jaran Flaath
 
PDF
Spring Boot
HongSeong Jeon
 
PPTX
Introduction to spring boot
Santosh Kumar Kar
 
PDF
Introduction to Spring Boot!
Jakub Kubrynski
 
PDF
Git超入門_座学編.pdf
憲昭 村田
 
PDF
Spring Framework - Core
Dzmitry Naskou
 
PDF
Quarkus Technical Deep Dive - Japanese
Chihiro Ito
 
PPTX
Java でつくる 低レイテンシ実装の技巧
Ryosuke Yamazaki
 
GraalVM Native and Spring Boot 3.0
MoritzHalbritter
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
 
Spring boot
Gyanendra Yadav
 
Spring boot introduction
Rasheed Waraich
 
JavaFX Overview
José Maria Silveira Neto
 
Spring Native and Spring AOT
VMware Tanzu
 
Java Hibernate Programming with Architecture Diagram and Example
kamal kotecha
 
Spring ppt
Mumbai Academisc
 
REST API に疲れたあなたへ贈る GraphQL 入門
Keisuke Tsukagoshi
 
What's new in Java 11
Michel Schudel
 
Spring Boot
Pei-Tang Huang
 
Spring boot
sdeeg
 
Spring Boot
Jaran Flaath
 
Spring Boot
HongSeong Jeon
 
Introduction to spring boot
Santosh Kumar Kar
 
Introduction to Spring Boot!
Jakub Kubrynski
 
Git超入門_座学編.pdf
憲昭 村田
 
Spring Framework - Core
Dzmitry Naskou
 
Quarkus Technical Deep Dive - Japanese
Chihiro Ito
 
Java でつくる 低レイテンシ実装の技巧
Ryosuke Yamazaki
 

Similar to GraalVM: Run Programs Faster Everywhere (20)

PDF
General Capabilities of GraalVM by Oleg Selajev @shelajev
Oracle Developers
 
PDF
Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...
scalaconfjp
 
PDF
New opportunities for Developers With GraalVM
Alina Yurenko
 
PDF
GraalVM Overview Compact version
scalaconfjp
 
PDF
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Develcz
 
PPTX
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
PPTX
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
PDF
GraalVM Native Images by Oleg Selajev @shelajev
Oracle Developers
 
PPTX
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
PDF
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
Alina Yurenko
 
PDF
GraalVM
Manfredi Giordano
 
PPTX
Ways to Level Up Your Java Application with GraalVM.pptx
ohupalo
 
PDF
Graalvm with Groovy and Kotlin - Greach 2019
Alberto De Ávila Hernández
 
PDF
GraalVM - MadridJUG 2019-10-22
Jorge Hidalgo
 
PDF
GraalVM - OpenSlava 2019-10-18
Jorge Hidalgo
 
PPTX
GraalVM - A Step Ahead of JVM Presentation
Knoldus Inc.
 
PDF
Peru JUG Micronaut & GraalVM
Domingo Suarez Torres
 
PDF
Javantura v4 - JVM++ The GraalVM - Martin Toshev
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PPTX
JVM++: The Graal VM
Martin Toshev
 
PPTX
GraalVM how to speedup & lover footprint of your app by doing nothing*
Eugene Hanikblum
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
Oracle Developers
 
Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...
scalaconfjp
 
New opportunities for Developers With GraalVM
Alina Yurenko
 
GraalVM Overview Compact version
scalaconfjp
 
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Develcz
 
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
GraalVM Native Images by Oleg Selajev @shelajev
Oracle Developers
 
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
Alina Yurenko
 
Ways to Level Up Your Java Application with GraalVM.pptx
ohupalo
 
Graalvm with Groovy and Kotlin - Greach 2019
Alberto De Ávila Hernández
 
GraalVM - MadridJUG 2019-10-22
Jorge Hidalgo
 
GraalVM - OpenSlava 2019-10-18
Jorge Hidalgo
 
GraalVM - A Step Ahead of JVM Presentation
Knoldus Inc.
 
Peru JUG Micronaut & GraalVM
Domingo Suarez Torres
 
Javantura v4 - JVM++ The GraalVM - Martin Toshev
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
JVM++: The Graal VM
Martin Toshev
 
GraalVM how to speedup & lover footprint of your app by doing nothing*
Eugene Hanikblum
 
Ad

More from J On The Beach (20)

PDF
Massively scalable ETL in real world applications: the hard way
J On The Beach
 
PPTX
Big Data On Data You Don’t Have
J On The Beach
 
PPTX
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
J On The Beach
 
PDF
Pushing it to the edge in IoT
J On The Beach
 
PDF
Drinking from the firehose, with virtual streams and virtual actors
J On The Beach
 
PDF
How do we deploy? From Punched cards to Immutable server pattern
J On The Beach
 
PDF
Java, Turbocharged
J On The Beach
 
PDF
When Cloud Native meets the Financial Sector
J On The Beach
 
PDF
The big data Universe. Literally.
J On The Beach
 
PDF
Streaming to a New Jakarta EE
J On The Beach
 
PDF
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
J On The Beach
 
PDF
Pushing AI to the Client with WebAssembly and Blazor
J On The Beach
 
PDF
Axon Server went RAFTing
J On The Beach
 
PDF
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
J On The Beach
 
PDF
Madaari : Ordering For The Monkeys
J On The Beach
 
PDF
Servers are doomed to fail
J On The Beach
 
PDF
Interaction Protocols: It's all about good manners
J On The Beach
 
PDF
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
J On The Beach
 
PDF
Leadership at every level
J On The Beach
 
PDF
Machine Learning: The Bare Math Behind Libraries
J On The Beach
 
Massively scalable ETL in real world applications: the hard way
J On The Beach
 
Big Data On Data You Don’t Have
J On The Beach
 
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
J On The Beach
 
Pushing it to the edge in IoT
J On The Beach
 
Drinking from the firehose, with virtual streams and virtual actors
J On The Beach
 
How do we deploy? From Punched cards to Immutable server pattern
J On The Beach
 
Java, Turbocharged
J On The Beach
 
When Cloud Native meets the Financial Sector
J On The Beach
 
The big data Universe. Literally.
J On The Beach
 
Streaming to a New Jakarta EE
J On The Beach
 
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
J On The Beach
 
Pushing AI to the Client with WebAssembly and Blazor
J On The Beach
 
Axon Server went RAFTing
J On The Beach
 
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
J On The Beach
 
Madaari : Ordering For The Monkeys
J On The Beach
 
Servers are doomed to fail
J On The Beach
 
Interaction Protocols: It's all about good manners
J On The Beach
 
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
J On The Beach
 
Leadership at every level
J On The Beach
 
Machine Learning: The Bare Math Behind Libraries
J On The Beach
 
Ad

Recently uploaded (20)

PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 

GraalVM: Run Programs Faster Everywhere

  • 1. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Run programs faster everywhere  Oleg Šelajev GraalVM team, Oracle Labs @shelajev
  • 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
  • 4. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !4
  • 5. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !5 Fast Java, Scala, Kotlin, Groovy, Clojure... Instant startup, low footprint Polyglot & embeddable VM 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 Java HotSpot VM GraalVM Compiler
  • 8. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !8 Java HotSpot VM GraalVM Compiler Truffle Framework LLVM
  • 9. Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
  • 10. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !10
  • 11. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 11 • More performance • Smaller footprint • Managed runtime for better isolation when running native code • Oracle Enterprise Support 7x24x365 Launching earlier this month:
 GraalVM Enterprise 19.0
  • 12. Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
  • 13. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !13 Renaissance suite https://renaissance.dev
  • 14. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !14 Streams API example benchmarks https://medium.com/graalvm/stream-api-performance-with-graalvm-be6cfe7fbb52
  • 15. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !15 sbt > clean; compile; https://medium.com/graalvm/compiling-scala-faster-with-graalvm-86c5c0857fa3
  • 16. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !16
  • 17. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !17
  • 18. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !18 Matrix multiplication https://www.youtube.com/watch?v=RFF2SfPMfpk
  • 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !19 valhallaBench.Multiply.multiply (lower is better) JDK 11 (size) Mode Cnt Score Error Units valhallaBench.Multiply.multiply 100 avgt 3 7944.935 ± 1963.931 us/op JDK11 + Graal (size) Mode Cnt Score Error Units valhallaBench.Multiply.multiply 100 avgt 3 3450.944 ± 1130.123 us/op GraalVM EE 1.0-rc8 (size) Mode Cnt Score Error Units valhallaBench.Multiply.multiply 100 avgt 3 3134.066 ± 518.812 us/op Matrix multiplication 2.3x 2.5x
  • 20. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !20
  • 22. 22 libgraal previous setup New in GraalVM 19: libgraal Use Native-Image to compile the GraalVM compiler and link in HotSpot • Faster startup • No profile pollution • Separate heap for
 the compiler
  • 23. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !23
  • 24. Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
  • 25. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !25 ECMAScript 6 compatibility
  • 26. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !26
  • 27. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !27 Graal.js on JDK11 https://github.com/graalvm/graal-js-jdk11-maven-demo
  • 28. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !28 https://www.youtube.com/watch?v=mRKjWrNJ8DI
  • 29. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !29 https://medium.com/graalvm/faster-r-with-fastr-4b8db0e0dceb
  • 30. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !30
  • 31. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !31
  • 32. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !32 https://medium.com/graalvm/analyzing-the-heap-of-graalvm-polyglot-applications-b9963e68a6a
  • 33. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !33
  • 34. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !34 GraalVM native images
  • 35. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !35 Native images • Full AOT compilation to machine code • Works with memory management • Secure execution (e.g., bounds checks) • Embeddable with native applications
  • 36. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !36
  • 37. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !37
  • 38. Now, you can profile any running program in HotSpot to generate a configuration file for native image You can run it multiple times to exhaust all of the reflective test paths (proxies, JNI, reflection) New in GraalVM 19: 
 native-image trace agent Previously, to use Native Image with reflection*, you needed a configuration file You could build it by hand, or use a framework to generate it $JAVA_HOME/bin/java -agentlib:native- image-agent=config-output-dir=META-INF/ native-image/ HelloReflection foo bar

  • 39. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !39
  • 40. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !40 Work in progress
  • 41. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | !41 https://medium.com/graalvm/safe-and-sandboxed-execution-of-native-code-f6096b35c360
  • 42. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !42 High performance, polyglot, language-level virtualization layer… embeddable across the stack in native and JVM-based applications.
  • 43. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. !43 Fast Java, Scala, Kotlin, Groovy, Clojure... Instant startup, low footprint Polyglot & embeddable VM Interoperability between languages: node.js, Python, Ruby, R Why GraalVM?