new opportunities for developers with graalvm · 2019. 11. 5. · new opportunities for developers...

37

Upload: others

Post on 17-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019
Page 2: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

New Opportunities for Developers with GraalVMAlina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Page 3: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Safe harbor statement

The following is intended to outline our general product direction. 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, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation.

Copyright © 2019 Oracle and/or its affiliates.

Page 4: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

What’s under the hood

Agenda

1

2

3

4

5

Performance Optimization

Fast startup for Java programs

Industry use cases

What’s next

Page 5: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

What’s under the hood

Agenda

1

2

3

4

5

Performance Optimization

Fast startup for Java programs

Industry use cases

What’s next

Page 6: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

GraalVM magic in one tweet

Page 7: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Why GraalVM

High Performance

Optimize application performance with GraalVM compiler

Fast Startup

Compile your application AOT and start instantly

Open Source

See what’s inside, track features progress, contribute

Polyglot

Mix & match languages with seamless interop

Page 8: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

standalonedatabase

Page 9: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Production-ready!🎉

Page 10: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Architecture

HotSpot VM

GraalVM Compiler

Language Implementation API

JS implementation

Python implementation

R implementation

More implementations

Page 11: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Architecture

HotSpot VM

GraalVM Compiler

Truffle Languages

Language Implementation API (Truffle)JVM Languages

Clojure

Page 12: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Get Started

• Downloads • Documentation • Community

support

Page 13: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

GraalVM Open Source

Page 14: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

What’s under the hood

Agenda

1

2

3

4

5

Performance optimization

Fast startup for Java programs

Industry use cases

What’s next

Page 15: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Startup Speed Peak Throughput

Low Memory Footprint

Reduced Max Latency

Packaging Size

AOT JIT

Measure performance?

Page 16: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Demo time

Page 17: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

GraalVM JIT Performance: Renaissance.devSp

eedu

p vs

JD

K8

0

1

2

3

4

akka-uct db-shootout finagle-chirper future-genetic movie-lens page-rank scrabble geomean

1.061.091.041.16

0.981.12

0.981.02

2.78

0.970.830.94

1.091.030.930.79

1.21.09110.990.97

1.321.59

1.17

1.66

1.131.121.11.35

3.08

1.031.03

1.96

1.141.14

1.49

1.171.371.36

1.1

1.531.27

1.02

EE/C2 CE/C2

Page 18: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

What’s under the hood

Agenda

1

2

3

4

5

Performance Optimization

Fast startup for Java programs

Industry use cases

What’s next

Page 19: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

GraalVM Native Images

• Instant startup;

• Low memory footprint;

• Works with memory management;

• AOT-compiled using the GraalVM compiler.

Page 20: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Native Image: Details

Ahead-of-Time Compilation

Application

Libraries

JDK

Substrate VM

Points-to Analysis

Run Initializations

Heap Snapshotting

Input: All application classes,

libraries, and VM

Iterative analysis until fixed point is reached

Code in Text Section

Image Heap in Data SectionImage Heap

Writing

Output: A native executable

Page 21: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Demo time

Page 22: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Microservice Frameworks: Startup Time

Helidon

Micronaut

Quarkus

0 ms 750 ms 1500 ms 2250 ms 3000 ms

940 ms

2101 ms

988 ms

952 ms

2087 ms

1030 ms

16 ms

37 ms

35 ms

Native Image JDK 12 JDK 8

Page 23: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Microservice Frameworks: Memory Usage

Helidon

Micronaut

Quarkus

Maximum Memory Size

0 MB 45 MB 90 MB 135 MB 180 MB

121 MB

180 MB

106 MB

125 MB

172 MB

116 MB

17 MB

41 MB

31 MB

Native Image JDK 12 JDK 8

Page 24: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Startup Speed Peak Throughput

Low Memory Footprint

Reduced Max Latency

Small Packaging

AOT

Currently

Page 25: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Startup Speed Peak Throughput

Low Memory Footprint

Reduced Max Latency

Small Packaging

AOT

Goal

Page 26: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Native Image: Profile-Guided Optimizations (PGO)

The GraalVM compiler is built ground-up with profiles in mind

Collecting profiles is essential for performance of native images PGO requires running relevant workloads before building an image

$ java -Dgraal.PGOInstrument=myclass.iprof MyClass

$ native-image --pgo=myclass.iprof MyClass $ ./myclass

Page 27: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Simplifying the Native Image Configuration

Page 28: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Continue Learning About GraalVM Native Images

• Reference manual: graalvm.org/docs/reference-manual/aot-compilation/

• Improving performance of GraalVM native images with PGO: https://medium.com/graalvm/

improving-performance-of-graalvm-native-images-with-profile-guided-

optimizations-9c431a834edb

• GraalVM Native Images: The Best Startup Solution for Your Applications: https://

www.youtube.com/watch?v=z0jedLjcWjI

Page 29: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

What’s under the hood

Agenda

1

2

3

4

5

Performance optimization

Fast startup for Java programs

Industry use cases

What’s next

Page 30: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Twitter uses GraalVM compiler in

production to run their Scala

microservices

Page 31: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

• Peak performance: +10%

• Garbage collection

time: -25%

• Seamless migration

Page 32: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

The rich ecosystem of CUDA-X libraries is now available for GraalVM applications.

GPU kernels can be directly launched from GraalVM languages such as R, JavaScript, Scala and other JVM-based languages.

Page 33: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

What’s under the hood

Agenda

1

2

3

4

5

Performance optimization

Fast startup for Java programs

Industry use cases

What’s next for GraalVM

Page 34: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Recent Updates

• Updated profile-guided optimizations for native images;

• Support for JFR in Graal VisualVM;

• Throughput improvements in native images;

• LLVM toolchain;

• VS Code plugin preview;

• Class Initialization changes in native images.

Page 35: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

What’s next for GraalVM

• JDK-11 based builds;

• ARM64 and Windows support;

• Low-latency, high-throughput, and parallel GC for native images;

• Work with the community to support important libraries;

• New languages and platforms;

• Your choice – contribute!

Page 36: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

What’s next for you

▪ Download:

graalvm.org/downloads

▪ Follow updates:

@GraalVM / #GraalVM

▪ If you need help:

▪ gitter.im/graalvm

▪ graalvm-users @oss.oracle.com

Page 37: New Opportunities for Developers with GraalVM · 2019. 11. 5. · New Opportunities for Developers with GraalVM Alina Yurenko GraalVM Developer Advocate Oracle Labs October 01, 2019

Thank you!

Alina Yurenko / @alina_yurenko

GraalVM Developer AdvocateOracle Labs