SlideShare a Scribd company logo
1 of 66
Download to read offline
Copyright © 2019 Oracle and/or its affiliates1
Taewan Kim (@taewanme, http://taewan.kim)
Principal Solution Engineer
Cloud Excellence Team / Oracle Korea
Oracle Modern Cloud Day
Cloud	Native	Java:	GraalVM
2019-11-19
Safe Harbor
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.
Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-
looking statements” and are subject to material risks and uncertainties. A detailed discussion of these factors and other risks
that affect our business is contained in Oracle’s Securities and Exchange Commission (SEC) filings, including our most recent
reports on Form 10-K and Form 10-Q under the heading “Risk Factors.” These filings are available on the SEC’s website or
on Oracle’s website at http://www.oracle.com/investor. All information in this presentation is current as of September 2019
and Oracle undertakes no duty to update any statement in light of new information or future events.
Copyright © 2019 Oracle and/or its affiliates2
What is GraalVM?
Index
1
2
3
4
5
Feature 1: High Performance Java
Feature 2: Language Interoperability
Feature 3 : Fast Startup – Native Image
Usecase
Copyright © 2019 Oracle and/or its affiliates3
6 OCI + GraalVM
• What is GraalVM?
• Feature 1: High Performance Java
• Feature 2: Language Interoperability
• Feature 3 : Fast Startup – Native Image
• Usecase
• OCI + GraalVM
Copyright © 2019 Oracle and/or its affiliates4
Cloud Native Java: GraalVM
Copyright © 2019 Oracle and/or its affiliates5
Java Standard Edition JDK(Java Development Kit)
고성능 자바
개발언어 수준
상호 운용성
빠른 실행
New JIT Compiler:
Graal
Java, R, JavaScript, Ruby,
C, C++, Rust, Python ….
native-image
Java for Cloud Native
Community Edition
Enterprise Edition
Version: 19.2.1
www.graalvm.org
Java 8 & Java 11(P)
GraalVM CE vs. GraalVM EE
Copyright © 2019 Oracle and/or its affiliates6
GraalVM CE vs. GraalVM EE
Copyright © 2019 Oracle and/or its affiliates7
• Free
• Community Support
• Commercial - Subscription
• Supported Enterprise Support
• Native Code Memory Protection
• GraalVM EE upto 25% than GraalVM CE
• Free on OCI(OCI Cloud)
GraalVM CE vs. GraalVM EE
Copyright © 2019 Oracle and/or its affiliates8
• Free
• Community Support
• Commercial - Subscription
• Supported Enterprise Support
• Native Code Memory Protection
• GraalVM EE upto 25% than GraalVM CE
• Free on OCI(OCI Cloud)
• What is GraalVM?
• Feature 1: High Performance Java
• Feature 2: Language Interoperability
• Feature 3 : Fast Startup – Native Image
• Usecase
• OCI + GraalVM
Copyright © 2019 Oracle and/or its affiliates9
Cloud Native Java: GraalVM
Java Performance Enhancement
Copyright © 2019 Oracle and/or its affiliates10
1995 1996 1998 2000 2002 2004 2006 2007 2014 2017 2018.3 2018.9 2019.3 2019.9
Beta
Java
1.0
Java
1.2
Java
1.3
Java
1.4
Java
5
Java
6
Java
7
Java
8
Java
9
Java
10
Java
11
Java
12
Java
13
Java
Java VM 성능 향상 요소
• Garbage Collection 알고리즘
• Runtime 메모리 구조 개선
• Java Library 효율성 향상
• CPU 최적화
• JIT(Just-in-Time) 컴파일러
Performance Matrices
Copyright © 2019 Oracle and/or its affiliates11
Startup Speed
Peak Throughput
Low Memory
Footprint
Reduced Max
Latency
단위 시간당 최대 처리량
지연시간 최소화
패키지 파일 용량
낮은 메모리 사용량
빠른 시작 시간
Small Packaging
GraalVM의 성능 개선
Copyright © 2019 Oracle and/or its affiliates12
JIT(Just-in-Time)
Compiler
Execution Engine
Javac & JIT(Just-in-Time) Compiler
Copyright © 2019 Oracle and/or its affiliates13
Java Source File Java bytecode File
jar file
javac (compile) jar(packing)
@Compile
Time
@Run Time (JVM)
Runtime Data Area Machine
Code
/
Native
Code
Class
Loader
JIT
Gabage
Collector
13
Filesystem
Execution Engine
Javac & JIT(Just-in-Time) Compiler
Copyright © 2019 Oracle and/or its affiliates14
Java Source File Java bytecode File
jar file
javac (compile) jar(packing)
@Compile
Time
@Run Time (JVM)
Runtime Data Area
Machine
Code
/
Native
Code
Class
Loader
Method
Area
Heap
Stack
Area
Program
Counter
Registers
Native
Method
Stack
JIT ProfilerIR Generator
Optimizer Code Generator
Gabage
Collector
Filesystem
Execution Engine
JIT Compiler | Optimizer
Copyright © 2019 Oracle and/or its affiliates15
JVM Runtime Data Area
Class
Loader JIT ProfilerIR Generator
Code Generator
Gabage
Collector
long count = 0, sum = 0;
for (int i = 0; i < persons.length;
i++) {
Person person = persons[i];
int age = person.age;
if (person.employment ==
Employment.EMPLOYED &&
person.salary > 100_000 && age >= 40) {
sum += age;
count += 1;
}
}
return (double) sum / count;
Arrays.stream(persons)
.filter(p -> p.getEmployment() ==
Employment.EMPLOYED)
.filter(p -> p.getSalary() > 100_000)
.mapToInt(Person::getAge)
.filter(age -> age >= 40).average()
.getAsDouble();
Code Optimization
Optimizer
Copyright © 2019 Oracle and/or its affiliates16
= + 𝜶
Copyright © 2019 Oracle and/or its affiliates17
= + 𝜶
HotSpot VM
C1 C2
Compiler Interface
OpenJDK 8
C++ C++
Copyright © 2019 Oracle and/or its affiliates18
HotSpot VM
C1 C2
Compiler Interface
OpenJDK 8
C++ C++
= + 𝜶
Copyright © 2019 Oracle and/or its affiliates19
HotSpot VM
C1 C2
Compiler Interface
OpenJDK 8
C++ C++
= + 𝜶
Copyright © 2019 Oracle and/or its affiliates20
HotSpot VM
C1 C2
Compiler Interface
OpenJDK 8
HotSpot VM
Compiler Interface JVMCI
C1 Graal
GraalVM
C++ C++ JavaC++
= + 𝜶
Copyright © 2019 Oracle and/or its affiliates21
HotSpot VM
C1 C2
Compiler Interface
OpenJDK 8
HotSpot VM
Compiler Interface JVMCI
C1 Graal
GraalVM
C++ C++ JavaC++
= + 𝜶
Graal & C2 성능 비교
Copyright © 2019 Oracle and/or its affiliates22
Graal Compiler
C2 Compiler
Graal & C2 성능 비교
Copyright © 2019 Oracle and/or its affiliates23
Iteration 1: 11.961 ns/op
Iteration 2: 11.888 ns/op
Iteration 3: 12.032 ns/op
Graal Compiler
Iteration 1: 231.342 ns/op
Iteration 2: 216.852 ns/op
Iteration 3: 217.012 ns/op
C2 Compiler
≪
Copyright © 2019 Oracle and/or its affiliates24
Graal & C2 성능 비교
• What is GraalVM?
• Feature 1: High Performance Java
• Feature 2: Language Interoperability
• Feature 3 : Fast Startup – Native Image
• Usecase
• OCI + GraalVM
Copyright © 2019 Oracle and/or its affiliates25
Cloud Native Java: GraalVM
Copyright © 2019 Oracle and/or its affiliates26
1995 Write once, Run anywhere
Copyright © 2019 Oracle and/or its affiliates27
1995 Write once, Run anywhere
JVM JVM JVM
Copyright © 2019 Oracle and/or its affiliates28
1995 Write once, Run anywhere
2010 ~
• Cloud Infra
• Open Source
https://landscape.cncf.io/zoom=60
Copyright © 2019 Oracle and/or its affiliates29
1995 Write once, Run anywhere
2013 One VM to rule them all
Polyglot Language Platform
Copyright © 2019 Oracle and/or its affiliates30
GraalVM Compiler
Java HotSpot VM
Truffle Framework
GraalVM interpreter GraalVM LLVM
bitcode interpreter
Polyglot Language Platform
Copyright © 2019 Oracle and/or its affiliates31
GraalVM Compiler
Java HotSpot VM
Truffle Framework
GraalVM interpreter GraalVM LLVM
bitcode interpreter
Copyright © 2019 Oracle and/or its affiliates32
Java
{Java, R} ∈ Node.js
Spring(Java) & R
Copyright © 2019 Oracle and/or its affiliates33
Java
• What is GraalVM?
• Feature 1: High Performance Java
• Feature 2: Language Interoperability
• Feature 3 : Fast Startup – Native Image
• Usecase
• OCI + GraalVM
Copyright © 2019 Oracle and/or its affiliates34
Cloud Native Java: GraalVM
Performance Matrices for JIT
Copyright © 2019 Oracle and/or its affiliates35
Low Memory
Footprint
Reduced Max
Latency
Small Packaging
JIT
Startup Speed Peak Throughput
Copyright © 2019 Oracle and/or its affiliates36
Low Memory
Footprint
Reduced Max
Latency
Small Packaging
AOT
Startup Speed Peak Throughput
Performance Matrices for AOT
AOT mode: Native Image
Copyright © 2019 Oracle and/or its affiliates37
@Second Compile Time with native-image
Substrate VM
Heap Image
Machine Code
실행 코드 생성
컴파일러
<GRAALVM_HOME>/bin/native-image
실행 파일
Executables
$ javac ExtListDir.java
$ native-imgae ExtListDir
$ ./exitlistdir
exitlistdir
ExtListDir 성능 비교
Copyright © 2019 Oracle and/or its affiliates38
Native modeGraal mode
ExtListDir 성능 비교
Copyright © 2019 Oracle and/or its affiliates39
Native modeGraal mode
0.126s 0.037s<<
AOT mode: Native Image
Copyright © 2019 Oracle and/or its affiliates40
@Second Compile Time with native-image
Substrate VM
Heap Image
Machine Code
실행 코드 생성
컴파일러
<GRAALVM_HOME>/bin/native-image
실행 파일
Executables
$ javac ExtListDir.java
$ native-imgae ExtListDir
$ ./exitlistdir
exitlistdir
AOT mode: Native Image
Copyright © 2019 Oracle and/or its affiliates41
@Second Compile Time with native-image
Class
Loader
Substrate VM
Heap Image
Machine Code
정적 코드 분석
클래스 로딩 및 초기화
<static block>
• heap snapshot
• AOT-compile code
Executables
Class
Loader
Execution Engine
JIT ProfilerIR Generator
Optimizer Code Generator
Gabage
Collector
AOT mode: Native Image
Copyright © 2019 Oracle and/or its affiliates42
@Run Time (JVM)
Runtime Data Area
Method
Area
Heap
Stack
Area
Program
Counter
Registers
Native
Method
Stack
Substrate VM
Heap Image
Machine Code
Executables
Class
Loader
Execution Engine
JIT ProfilerIR Generator
Optimizer Code Generator
Gabage
Collector
AOT mode: Native Image
Copyright © 2019 Oracle and/or its affiliates43
Runtime Data Area
Method
Area
Heap
Stack
Area
Program
Counter
Registers
Native
Method
Stack
Substrate VM
Heap
Image
Machine Code
Executables
@Run Time (JVM)
Copyright © 2019 Oracle and/or its affiliates44
Low Memory
Footprint
Reduced Max
Latency
Small Packaging
AOT
Startup Speed Peak Throughput
Performance Matrices for AOT
Substrate VM
Heap Image
Machine Code
Executables
Performance Matrices for AOT & JIT
Copyright © 2019 Oracle and/or its affiliates45
Startup Speed Peak Throughput
Low Memory
Footprint
Reduced Max
Latency
Small Packaging
AOT JIT
Final Goal of GraalVM AOT
Copyright © 2019 Oracle and/or its affiliates46
Low Memory
Footprint
Reduced Max
Latency
Small Packaging
AOT JIT
Startup Speed Peak Throughput
How to Run Application in JIT
Copyright © 2019 Oracle and/or its affiliates47
JVM 실행 파일 로딩
Class Loader 클래스 파일 로딩
바이트 코드 검증
코드 해석
Fist Tier JIT 코드 컴파일 (C1)
머신코드 실행
프로파일 피드백 수집
Class Loader 클래스 파일 로딩
바이트 코드 검증
코드 해석
Second Tier JIT 코드 컴파일
(C2/Graal)
머신코드 실행
<After Switching JIT Compiler> >
How to Run Application in JIT
Copyright © 2019 Oracle and/or its affiliates48
https://itu.dk/people/thdy/teaching/pcpp2019/Week_3/lecture.pdf
C1 Compiler C2 Compiler
프로파일
Native Image | Profile-Guided Optimization
Copyright © 2019 Oracle and/or its affiliates49
Substrate VM
Heap Image
Machine Code
Executables File
$ java -Dgraal.PGOInstrument=myclass.iprof MyClass
$ native-image --pgo=myclass.iprof MyClass
native-image
--pgo-instrument Instrumented Binary
native-image --pgo Optimized Binary
Profiles (.iprof)
Relevant
Workloads
Quarkus Hibernate | PGO Native
0
2,000
4,000
6,000
8,000
10,000
12,000
14,000
16,000
18,000
1,000 10,000 100,000 1,000,000 10,000,000
Cumulative number of requests sent by ApacheBench
Native Image JDK 8, Java HotSpot VM
Handled requests per second
Copyright © 2019 Oracle and/or its affiliates50
• What is GraalVM?
• Feature 1: High Performance Java
• Feature 2: Language Interoperability
Feature 3 : Fast Startup – Native Image
• Usecase
• OCI + GraalVM
Copyright © 2019 Oracle and/or its affiliates51
Cloud Native Java: GraalVM
Twitter | 20% 성능 개선 (GraalVM CE)
Copyright © 2019 Oracle and/or its affiliates52
https://www.youtube.com/watch?v=ZbccuoaLChk
Copyright © 2019 Oracle and/or its affiliates53
Language GPU Support Library
Python Numba, cuPy, PyCUDA
Java JCuda, jCUDA, CUDA4J
C/C++ CUDA C/C++
R gpuR, Rcpp
JavaScript gpu.js, node-cuda, cuda-ts
C# Hybridizer, ManagedCUDA, ILGPU
Ruby RbCUDA
GraalVM Compiler
Java HotSpot VM
Truffle Framework
GraalVM LLVM
bitcode interpreter
NVIDIA | grCUDA
Microprofile | 성능
Copyright © 2019 Oracle and/or its affiliates54
940 ms
2101 ms
988 ms
952 ms
2087 ms
1030 ms
16 ms
37 ms
35 ms
0 ms 500 ms 1000 ms 1500 ms 2000 ms 2500 ms
Quarkus
Micronaut
Helidon
Native Image JDK 12 JDK 8
Microprofile | 메모리
Copyright © 2019 Oracle and/or its affiliates55
121 MB
180 MB
106 MB
125 MB
172 MB
116 MB
17 MB
41 MB
31 MB
0 MB 20 MB 40 MB 60 MB 80 MB 100 MB 120 MB 140 MB 160 MB 180 MB 200 MB
Quarkus
Micronaut
Helidon
Maximum Memory Size
Native Image JDK 12 JDK 8
• What is GraalVM?
• Feature 1: High Performance Java
• Feature 2: Language Interoperability
• Feature 3 : Fast Startup – Native Image
• Usecase
• OCI + GraalVM
Copyright © 2019 Oracle and/or its affiliates56
Cloud Native Java: GraalVM
Copyright © 2019 Oracle and/or its affiliates57
FunctionsContainers
• Kubernetes
• PaaS
Virtual Machine/
Bare Metal
Oracle Cloud + GraalVM
Copyright © 2019 Oracle and/or its affiliates58
Low Memory
Footprint
Reduced Max
Latency
Small Packaging
AOT JIT
GraalVM | OCI VM
Startup Speed Peak Throughput
Copyright © 2019 Oracle and/or its affiliates59
Low Memory
Footprint
Reduced Max
Latency
Small Packaging
AOT JIT
GraalVM | OCI Container
Startup Speed Peak Throughput
Copyright © 2019 Oracle and/or its affiliates60
Low Memory
Footprint
Reduced Max
Latency
Small Packaging
AOT JIT
GraalVM | OCI Function
Startup Speed Peak Throughput
Copyright © 2019 Oracle and/or its affiliates61
GraalVM 세션 요약
Summary
Copyright © 2019 Oracle and/or its affiliates62
Java Standard Edition JDK(Java Development Kit)
고성능 자바
개발언어 수준
상호 운용성
빠른 실행
New JIT Compiler:
Graal
Java, R, JavaScript, Ruby,
C, C++, Rust, Python ….
native-image
Java for Cloud Native
One VM to
Rule them
ALL (2013)
Community Edition
Enterprise Edition
Version: 19.2.1
www.graalvm.org
Java 8 & Java 11(P)
Summary | GraalVM 은 OOO 이다.
Copyright © 2019 Oracle and/or its affiliates63
Java Standard Edition JDK(Java Development Kit)
고성능 자바
개발언어 수준
상호 운용성
빠른 실행
New JIT Compiler:
Graal
Java, R, JavaScript, Ruby,
C, C++, Rust, Python ….
native-image
Java for Cloud Native
One VM to
Rule them
ALL (2013)
Community Edition
Enterprise Edition
Version: 19.2.1
www.graalvm.org
Java 8 & Java 11(P)
#Standard-Java compatibility
#Extension Java for cloud
#Standardization Orientation
#Non-Standard Java
Copyright © 2019 Oracle and/or its affiliates64
GraalVM 수석 개발자 Thomas Wuerthinger 세션
2019.12.14 13:00 Asem Tower 15층
Copyright © 2019 Oracle and/or its affiliates65
Thank you
Taewan Kim
Solution Engineer
Cloud Excellence Team
20191119 Cloud Native Java : GraalVM

More Related Content

What's hot

JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?Edward Burns
 
Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9Simon Ritter
 
Api design and prototype
Api design and prototypeApi design and prototype
Api design and prototypeDonghuKIM2
 
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineBuilding microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineDonghuKIM2
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Logico
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemBruno Borges
 
Monitoring of Web Applications and GlassFish for Performance and Availability...
Monitoring of Web Applications and GlassFish for Performance and Availability...Monitoring of Web Applications and GlassFish for Performance and Availability...
Monitoring of Web Applications and GlassFish for Performance and Availability...SL Corporation
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Shaun Smith
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsDavid Delabassee
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production EnvironmentsBruno Borges
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudBruno Borges
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
 
Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...
Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...
Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...jeckels
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Edward Burns
 
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Simon Ritter
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouEdward Burns
 
Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?Simon Ritter
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developersPavel Bucek
 

What's hot (20)

JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
 
Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9
 
Api design and prototype
Api design and prototypeApi design and prototype
Api design and prototype
 
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineBuilding microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipeline
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
 
Monitoring of Web Applications and GlassFish for Performance and Availability...
Monitoring of Web Applications and GlassFish for Performance and Availability...Monitoring of Web Applications and GlassFish for Performance and Availability...
Monitoring of Web Applications and GlassFish for Performance and Availability...
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...
Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...
Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
 
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David DelabasseeJavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
 
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
 
JavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin TadićJavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin Tadić
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
 
Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developers
 

Similar to 20191119 Cloud Native Java : GraalVM

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 @shelajevOracle Developers
 
New opportunities for Developers With GraalVM
New opportunities for Developers With GraalVMNew opportunities for Developers With GraalVM
New opportunities for Developers With GraalVMAlina Yurenko
 
CNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVMCNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVMLibbySchulze
 
GraalVM Overview Compact version
GraalVM Overview Compact versionGraalVM Overview Compact version
GraalVM Overview Compact versionscalaconfjp
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best PracticesDavid Delabassee
 
TechEvent Graal(VM) Performance Interoperability
TechEvent Graal(VM) Performance InteroperabilityTechEvent Graal(VM) Performance Interoperability
TechEvent Graal(VM) Performance InteroperabilityTrivadis
 
Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...
Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...
Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...scalaconfjp
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgpmichaelisvy
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereJ On The Beach
 
GraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevGraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevOracle Developers
 
DevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps.com
 
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewOracle Korea
 
SemeruRuntimesUnderTheCover .pptx
SemeruRuntimesUnderTheCover .pptxSemeruRuntimesUnderTheCover .pptx
SemeruRuntimesUnderTheCover .pptxSumanMitra22
 
Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterBalasubramanian Kandasamy
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesChristopher Jones
 
Matt Wright - The Application Grid
Matt Wright - The Application GridMatt Wright - The Application Grid
Matt Wright - The Application GridSaul Cunningham
 
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...Juarez Junior
 
Serverless Patterns by Jesse Butler
Serverless Patterns by Jesse ButlerServerless Patterns by Jesse Butler
Serverless Patterns by Jesse ButlerOracle Developers
 

Similar to 20191119 Cloud Native Java : GraalVM (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
 
New opportunities for Developers With GraalVM
New opportunities for Developers With GraalVMNew opportunities for Developers With GraalVM
New opportunities for Developers With GraalVM
 
CNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVMCNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVM
 
GraalVM Overview Compact version
GraalVM Overview Compact versionGraalVM Overview Compact version
GraalVM Overview Compact version
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
TechEvent Graal(VM) Performance Interoperability
TechEvent Graal(VM) Performance InteroperabilityTechEvent Graal(VM) Performance Interoperability
TechEvent Graal(VM) Performance Interoperability
 
Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...
Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...
Run Scala Faster with GraalVM on any Platform / GraalVMで、どこでもScalaを高速実行しよう by...
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgp
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster Everywhere
 
GraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevGraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajev
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
DevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast Track
 
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
 
SemeruRuntimesUnderTheCover .pptx
SemeruRuntimesUnderTheCover .pptxSemeruRuntimesUnderTheCover .pptx
SemeruRuntimesUnderTheCover .pptx
 
Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB Cluster
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
 
Matt Wright - The Application Grid
Matt Wright - The Application GridMatt Wright - The Application Grid
Matt Wright - The Application Grid
 
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...
 
Serverless Patterns by Jesse Butler
Serverless Patterns by Jesse ButlerServerless Patterns by Jesse Butler
Serverless Patterns by Jesse Butler
 

More from Taewan Kim

Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 1 (1/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서:  Part 1 (1/2)Oracle APEX 기초 워크샵 - 실습 가이드 문서:  Part 1 (1/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 1 (1/2)Taewan Kim
 
[OCI 새소식] OCI Burstable Instance
[OCI 새소식] OCI Burstable Instance[OCI 새소식] OCI Burstable Instance
[OCI 새소식] OCI Burstable InstanceTaewan Kim
 
오라클 클라우드 OCI 기초 개념 & 용어 정리
오라클 클라우드 OCI 기초 개념 & 용어 정리오라클 클라우드 OCI 기초 개념 & 용어 정리
오라클 클라우드 OCI 기초 개념 & 용어 정리Taewan Kim
 
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)Taewan Kim
 
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...Taewan Kim
 
2018 Oracle Impact 발표자료: Oracle Enterprise AI
2018  Oracle Impact 발표자료: Oracle Enterprise AI2018  Oracle Impact 발표자료: Oracle Enterprise AI
2018 Oracle Impact 발표자료: Oracle Enterprise AITaewan Kim
 
Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewTaewan Kim
 

More from Taewan Kim (7)

Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 1 (1/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서:  Part 1 (1/2)Oracle APEX 기초 워크샵 - 실습 가이드 문서:  Part 1 (1/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 1 (1/2)
 
[OCI 새소식] OCI Burstable Instance
[OCI 새소식] OCI Burstable Instance[OCI 새소식] OCI Burstable Instance
[OCI 새소식] OCI Burstable Instance
 
오라클 클라우드 OCI 기초 개념 & 용어 정리
오라클 클라우드 OCI 기초 개념 & 용어 정리오라클 클라우드 OCI 기초 개념 & 용어 정리
오라클 클라우드 OCI 기초 개념 & 용어 정리
 
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)
 
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...
 
2018 Oracle Impact 발표자료: Oracle Enterprise AI
2018  Oracle Impact 발표자료: Oracle Enterprise AI2018  Oracle Impact 발표자료: Oracle Enterprise AI
2018 Oracle Impact 발표자료: Oracle Enterprise AI
 
Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker Overview
 

Recently uploaded

US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfBalamuruganV28
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.elesangwon
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfShreyas Pandit
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionSneha Padhiar
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxTriangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxRomil Mishra
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
List of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfList of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfisabel213075
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTSneha Padhiar
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfManish Kumar
 
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSsandhya757531
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfDrew Moseley
 
Forming section troubleshooting checklist for improving wire life (1).ppt
Forming section troubleshooting checklist for improving wire life (1).pptForming section troubleshooting checklist for improving wire life (1).ppt
Forming section troubleshooting checklist for improving wire life (1).pptNoman khan
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHSneha Padhiar
 
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork
 

Recently uploaded (20)

US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdf
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdf
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based question
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxTriangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
List of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfList of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdf
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
 
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdf
 
Forming section troubleshooting checklist for improving wire life (1).ppt
Forming section troubleshooting checklist for improving wire life (1).pptForming section troubleshooting checklist for improving wire life (1).ppt
Forming section troubleshooting checklist for improving wire life (1).ppt
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
 
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
 

20191119 Cloud Native Java : GraalVM

  • 1. Copyright © 2019 Oracle and/or its affiliates1 Taewan Kim (@taewanme, http://taewan.kim) Principal Solution Engineer Cloud Excellence Team / Oracle Korea Oracle Modern Cloud Day Cloud Native Java: GraalVM 2019-11-19
  • 2. Safe Harbor 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. Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward- looking statements” and are subject to material risks and uncertainties. A detailed discussion of these factors and other risks that affect our business is contained in Oracle’s Securities and Exchange Commission (SEC) filings, including our most recent reports on Form 10-K and Form 10-Q under the heading “Risk Factors.” These filings are available on the SEC’s website or on Oracle’s website at http://www.oracle.com/investor. All information in this presentation is current as of September 2019 and Oracle undertakes no duty to update any statement in light of new information or future events. Copyright © 2019 Oracle and/or its affiliates2
  • 3. What is GraalVM? Index 1 2 3 4 5 Feature 1: High Performance Java Feature 2: Language Interoperability Feature 3 : Fast Startup – Native Image Usecase Copyright © 2019 Oracle and/or its affiliates3 6 OCI + GraalVM
  • 4. • What is GraalVM? • Feature 1: High Performance Java • Feature 2: Language Interoperability • Feature 3 : Fast Startup – Native Image • Usecase • OCI + GraalVM Copyright © 2019 Oracle and/or its affiliates4 Cloud Native Java: GraalVM
  • 5. Copyright © 2019 Oracle and/or its affiliates5 Java Standard Edition JDK(Java Development Kit) 고성능 자바 개발언어 수준 상호 운용성 빠른 실행 New JIT Compiler: Graal Java, R, JavaScript, Ruby, C, C++, Rust, Python …. native-image Java for Cloud Native Community Edition Enterprise Edition Version: 19.2.1 www.graalvm.org Java 8 & Java 11(P)
  • 6. GraalVM CE vs. GraalVM EE Copyright © 2019 Oracle and/or its affiliates6
  • 7. GraalVM CE vs. GraalVM EE Copyright © 2019 Oracle and/or its affiliates7 • Free • Community Support • Commercial - Subscription • Supported Enterprise Support • Native Code Memory Protection • GraalVM EE upto 25% than GraalVM CE • Free on OCI(OCI Cloud)
  • 8. GraalVM CE vs. GraalVM EE Copyright © 2019 Oracle and/or its affiliates8 • Free • Community Support • Commercial - Subscription • Supported Enterprise Support • Native Code Memory Protection • GraalVM EE upto 25% than GraalVM CE • Free on OCI(OCI Cloud)
  • 9. • What is GraalVM? • Feature 1: High Performance Java • Feature 2: Language Interoperability • Feature 3 : Fast Startup – Native Image • Usecase • OCI + GraalVM Copyright © 2019 Oracle and/or its affiliates9 Cloud Native Java: GraalVM
  • 10. Java Performance Enhancement Copyright © 2019 Oracle and/or its affiliates10 1995 1996 1998 2000 2002 2004 2006 2007 2014 2017 2018.3 2018.9 2019.3 2019.9 Beta Java 1.0 Java 1.2 Java 1.3 Java 1.4 Java 5 Java 6 Java 7 Java 8 Java 9 Java 10 Java 11 Java 12 Java 13 Java Java VM 성능 향상 요소 • Garbage Collection 알고리즘 • Runtime 메모리 구조 개선 • Java Library 효율성 향상 • CPU 최적화 • JIT(Just-in-Time) 컴파일러
  • 11. Performance Matrices Copyright © 2019 Oracle and/or its affiliates11 Startup Speed Peak Throughput Low Memory Footprint Reduced Max Latency 단위 시간당 최대 처리량 지연시간 최소화 패키지 파일 용량 낮은 메모리 사용량 빠른 시작 시간 Small Packaging
  • 12. GraalVM의 성능 개선 Copyright © 2019 Oracle and/or its affiliates12 JIT(Just-in-Time) Compiler
  • 13. Execution Engine Javac & JIT(Just-in-Time) Compiler Copyright © 2019 Oracle and/or its affiliates13 Java Source File Java bytecode File jar file javac (compile) jar(packing) @Compile Time @Run Time (JVM) Runtime Data Area Machine Code / Native Code Class Loader JIT Gabage Collector 13 Filesystem
  • 14. Execution Engine Javac & JIT(Just-in-Time) Compiler Copyright © 2019 Oracle and/or its affiliates14 Java Source File Java bytecode File jar file javac (compile) jar(packing) @Compile Time @Run Time (JVM) Runtime Data Area Machine Code / Native Code Class Loader Method Area Heap Stack Area Program Counter Registers Native Method Stack JIT ProfilerIR Generator Optimizer Code Generator Gabage Collector Filesystem
  • 15. Execution Engine JIT Compiler | Optimizer Copyright © 2019 Oracle and/or its affiliates15 JVM Runtime Data Area Class Loader JIT ProfilerIR Generator Code Generator Gabage Collector long count = 0, sum = 0; for (int i = 0; i < persons.length; i++) { Person person = persons[i]; int age = person.age; if (person.employment == Employment.EMPLOYED && person.salary > 100_000 && age >= 40) { sum += age; count += 1; } } return (double) sum / count; Arrays.stream(persons) .filter(p -> p.getEmployment() == Employment.EMPLOYED) .filter(p -> p.getSalary() > 100_000) .mapToInt(Person::getAge) .filter(age -> age >= 40).average() .getAsDouble(); Code Optimization Optimizer
  • 16. Copyright © 2019 Oracle and/or its affiliates16 = + 𝜶
  • 17. Copyright © 2019 Oracle and/or its affiliates17 = + 𝜶 HotSpot VM C1 C2 Compiler Interface OpenJDK 8 C++ C++
  • 18. Copyright © 2019 Oracle and/or its affiliates18 HotSpot VM C1 C2 Compiler Interface OpenJDK 8 C++ C++ = + 𝜶
  • 19. Copyright © 2019 Oracle and/or its affiliates19 HotSpot VM C1 C2 Compiler Interface OpenJDK 8 C++ C++ = + 𝜶
  • 20. Copyright © 2019 Oracle and/or its affiliates20 HotSpot VM C1 C2 Compiler Interface OpenJDK 8 HotSpot VM Compiler Interface JVMCI C1 Graal GraalVM C++ C++ JavaC++ = + 𝜶
  • 21. Copyright © 2019 Oracle and/or its affiliates21 HotSpot VM C1 C2 Compiler Interface OpenJDK 8 HotSpot VM Compiler Interface JVMCI C1 Graal GraalVM C++ C++ JavaC++ = + 𝜶
  • 22. Graal & C2 성능 비교 Copyright © 2019 Oracle and/or its affiliates22 Graal Compiler C2 Compiler
  • 23. Graal & C2 성능 비교 Copyright © 2019 Oracle and/or its affiliates23 Iteration 1: 11.961 ns/op Iteration 2: 11.888 ns/op Iteration 3: 12.032 ns/op Graal Compiler Iteration 1: 231.342 ns/op Iteration 2: 216.852 ns/op Iteration 3: 217.012 ns/op C2 Compiler ≪
  • 24. Copyright © 2019 Oracle and/or its affiliates24 Graal & C2 성능 비교
  • 25. • What is GraalVM? • Feature 1: High Performance Java • Feature 2: Language Interoperability • Feature 3 : Fast Startup – Native Image • Usecase • OCI + GraalVM Copyright © 2019 Oracle and/or its affiliates25 Cloud Native Java: GraalVM
  • 26. Copyright © 2019 Oracle and/or its affiliates26 1995 Write once, Run anywhere
  • 27. Copyright © 2019 Oracle and/or its affiliates27 1995 Write once, Run anywhere JVM JVM JVM
  • 28. Copyright © 2019 Oracle and/or its affiliates28 1995 Write once, Run anywhere 2010 ~ • Cloud Infra • Open Source https://landscape.cncf.io/zoom=60
  • 29. Copyright © 2019 Oracle and/or its affiliates29 1995 Write once, Run anywhere 2013 One VM to rule them all
  • 30. Polyglot Language Platform Copyright © 2019 Oracle and/or its affiliates30 GraalVM Compiler Java HotSpot VM Truffle Framework GraalVM interpreter GraalVM LLVM bitcode interpreter
  • 31. Polyglot Language Platform Copyright © 2019 Oracle and/or its affiliates31 GraalVM Compiler Java HotSpot VM Truffle Framework GraalVM interpreter GraalVM LLVM bitcode interpreter
  • 32. Copyright © 2019 Oracle and/or its affiliates32 Java {Java, R} ∈ Node.js
  • 33. Spring(Java) & R Copyright © 2019 Oracle and/or its affiliates33 Java
  • 34. • What is GraalVM? • Feature 1: High Performance Java • Feature 2: Language Interoperability • Feature 3 : Fast Startup – Native Image • Usecase • OCI + GraalVM Copyright © 2019 Oracle and/or its affiliates34 Cloud Native Java: GraalVM
  • 35. Performance Matrices for JIT Copyright © 2019 Oracle and/or its affiliates35 Low Memory Footprint Reduced Max Latency Small Packaging JIT Startup Speed Peak Throughput
  • 36. Copyright © 2019 Oracle and/or its affiliates36 Low Memory Footprint Reduced Max Latency Small Packaging AOT Startup Speed Peak Throughput Performance Matrices for AOT
  • 37. AOT mode: Native Image Copyright © 2019 Oracle and/or its affiliates37 @Second Compile Time with native-image Substrate VM Heap Image Machine Code 실행 코드 생성 컴파일러 <GRAALVM_HOME>/bin/native-image 실행 파일 Executables $ javac ExtListDir.java $ native-imgae ExtListDir $ ./exitlistdir exitlistdir
  • 38. ExtListDir 성능 비교 Copyright © 2019 Oracle and/or its affiliates38 Native modeGraal mode
  • 39. ExtListDir 성능 비교 Copyright © 2019 Oracle and/or its affiliates39 Native modeGraal mode 0.126s 0.037s<<
  • 40. AOT mode: Native Image Copyright © 2019 Oracle and/or its affiliates40 @Second Compile Time with native-image Substrate VM Heap Image Machine Code 실행 코드 생성 컴파일러 <GRAALVM_HOME>/bin/native-image 실행 파일 Executables $ javac ExtListDir.java $ native-imgae ExtListDir $ ./exitlistdir exitlistdir
  • 41. AOT mode: Native Image Copyright © 2019 Oracle and/or its affiliates41 @Second Compile Time with native-image Class Loader Substrate VM Heap Image Machine Code 정적 코드 분석 클래스 로딩 및 초기화 <static block> • heap snapshot • AOT-compile code Executables
  • 42. Class Loader Execution Engine JIT ProfilerIR Generator Optimizer Code Generator Gabage Collector AOT mode: Native Image Copyright © 2019 Oracle and/or its affiliates42 @Run Time (JVM) Runtime Data Area Method Area Heap Stack Area Program Counter Registers Native Method Stack Substrate VM Heap Image Machine Code Executables
  • 43. Class Loader Execution Engine JIT ProfilerIR Generator Optimizer Code Generator Gabage Collector AOT mode: Native Image Copyright © 2019 Oracle and/or its affiliates43 Runtime Data Area Method Area Heap Stack Area Program Counter Registers Native Method Stack Substrate VM Heap Image Machine Code Executables @Run Time (JVM)
  • 44. Copyright © 2019 Oracle and/or its affiliates44 Low Memory Footprint Reduced Max Latency Small Packaging AOT Startup Speed Peak Throughput Performance Matrices for AOT Substrate VM Heap Image Machine Code Executables
  • 45. Performance Matrices for AOT & JIT Copyright © 2019 Oracle and/or its affiliates45 Startup Speed Peak Throughput Low Memory Footprint Reduced Max Latency Small Packaging AOT JIT
  • 46. Final Goal of GraalVM AOT Copyright © 2019 Oracle and/or its affiliates46 Low Memory Footprint Reduced Max Latency Small Packaging AOT JIT Startup Speed Peak Throughput
  • 47. How to Run Application in JIT Copyright © 2019 Oracle and/or its affiliates47 JVM 실행 파일 로딩 Class Loader 클래스 파일 로딩 바이트 코드 검증 코드 해석 Fist Tier JIT 코드 컴파일 (C1) 머신코드 실행 프로파일 피드백 수집 Class Loader 클래스 파일 로딩 바이트 코드 검증 코드 해석 Second Tier JIT 코드 컴파일 (C2/Graal) 머신코드 실행 <After Switching JIT Compiler> >
  • 48. How to Run Application in JIT Copyright © 2019 Oracle and/or its affiliates48 https://itu.dk/people/thdy/teaching/pcpp2019/Week_3/lecture.pdf C1 Compiler C2 Compiler 프로파일
  • 49. Native Image | Profile-Guided Optimization Copyright © 2019 Oracle and/or its affiliates49 Substrate VM Heap Image Machine Code Executables File $ java -Dgraal.PGOInstrument=myclass.iprof MyClass $ native-image --pgo=myclass.iprof MyClass native-image --pgo-instrument Instrumented Binary native-image --pgo Optimized Binary Profiles (.iprof) Relevant Workloads
  • 50. Quarkus Hibernate | PGO Native 0 2,000 4,000 6,000 8,000 10,000 12,000 14,000 16,000 18,000 1,000 10,000 100,000 1,000,000 10,000,000 Cumulative number of requests sent by ApacheBench Native Image JDK 8, Java HotSpot VM Handled requests per second Copyright © 2019 Oracle and/or its affiliates50
  • 51. • What is GraalVM? • Feature 1: High Performance Java • Feature 2: Language Interoperability Feature 3 : Fast Startup – Native Image • Usecase • OCI + GraalVM Copyright © 2019 Oracle and/or its affiliates51 Cloud Native Java: GraalVM
  • 52. Twitter | 20% 성능 개선 (GraalVM CE) Copyright © 2019 Oracle and/or its affiliates52 https://www.youtube.com/watch?v=ZbccuoaLChk
  • 53. Copyright © 2019 Oracle and/or its affiliates53 Language GPU Support Library Python Numba, cuPy, PyCUDA Java JCuda, jCUDA, CUDA4J C/C++ CUDA C/C++ R gpuR, Rcpp JavaScript gpu.js, node-cuda, cuda-ts C# Hybridizer, ManagedCUDA, ILGPU Ruby RbCUDA GraalVM Compiler Java HotSpot VM Truffle Framework GraalVM LLVM bitcode interpreter NVIDIA | grCUDA
  • 54. Microprofile | 성능 Copyright © 2019 Oracle and/or its affiliates54 940 ms 2101 ms 988 ms 952 ms 2087 ms 1030 ms 16 ms 37 ms 35 ms 0 ms 500 ms 1000 ms 1500 ms 2000 ms 2500 ms Quarkus Micronaut Helidon Native Image JDK 12 JDK 8
  • 55. Microprofile | 메모리 Copyright © 2019 Oracle and/or its affiliates55 121 MB 180 MB 106 MB 125 MB 172 MB 116 MB 17 MB 41 MB 31 MB 0 MB 20 MB 40 MB 60 MB 80 MB 100 MB 120 MB 140 MB 160 MB 180 MB 200 MB Quarkus Micronaut Helidon Maximum Memory Size Native Image JDK 12 JDK 8
  • 56. • What is GraalVM? • Feature 1: High Performance Java • Feature 2: Language Interoperability • Feature 3 : Fast Startup – Native Image • Usecase • OCI + GraalVM Copyright © 2019 Oracle and/or its affiliates56 Cloud Native Java: GraalVM
  • 57. Copyright © 2019 Oracle and/or its affiliates57 FunctionsContainers • Kubernetes • PaaS Virtual Machine/ Bare Metal Oracle Cloud + GraalVM
  • 58. Copyright © 2019 Oracle and/or its affiliates58 Low Memory Footprint Reduced Max Latency Small Packaging AOT JIT GraalVM | OCI VM Startup Speed Peak Throughput
  • 59. Copyright © 2019 Oracle and/or its affiliates59 Low Memory Footprint Reduced Max Latency Small Packaging AOT JIT GraalVM | OCI Container Startup Speed Peak Throughput
  • 60. Copyright © 2019 Oracle and/or its affiliates60 Low Memory Footprint Reduced Max Latency Small Packaging AOT JIT GraalVM | OCI Function Startup Speed Peak Throughput
  • 61. Copyright © 2019 Oracle and/or its affiliates61 GraalVM 세션 요약
  • 62. Summary Copyright © 2019 Oracle and/or its affiliates62 Java Standard Edition JDK(Java Development Kit) 고성능 자바 개발언어 수준 상호 운용성 빠른 실행 New JIT Compiler: Graal Java, R, JavaScript, Ruby, C, C++, Rust, Python …. native-image Java for Cloud Native One VM to Rule them ALL (2013) Community Edition Enterprise Edition Version: 19.2.1 www.graalvm.org Java 8 & Java 11(P)
  • 63. Summary | GraalVM 은 OOO 이다. Copyright © 2019 Oracle and/or its affiliates63 Java Standard Edition JDK(Java Development Kit) 고성능 자바 개발언어 수준 상호 운용성 빠른 실행 New JIT Compiler: Graal Java, R, JavaScript, Ruby, C, C++, Rust, Python …. native-image Java for Cloud Native One VM to Rule them ALL (2013) Community Edition Enterprise Edition Version: 19.2.1 www.graalvm.org Java 8 & Java 11(P) #Standard-Java compatibility #Extension Java for cloud #Standardization Orientation #Non-Standard Java
  • 64. Copyright © 2019 Oracle and/or its affiliates64 GraalVM 수석 개발자 Thomas Wuerthinger 세션 2019.12.14 13:00 Asem Tower 15층
  • 65. Copyright © 2019 Oracle and/or its affiliates65 Thank you Taewan Kim Solution Engineer Cloud Excellence Team