33
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 3 Confidential – Oracle Internal/Restricted/Highly Restricted The quest to the language Graal: one JVM to rule them all Elder Moraes | @elderjava Developer Advocate Abril, 2019

The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 3Confidential–OracleInternal/Restricted/HighlyRestricted

ThequesttothelanguageGraal:oneJVMtorulethemall

ElderMoraes|@elderjavaDeveloperAdvocateAbril,2019

Page 2: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirection.Itisintendedforinformationpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfunctionality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,timing,andpricingofanyfeaturesorfunctionalitydescribedforOracle’sproductsmaychangeandremainsatthesolediscretionofOracleCorporation.

Page 3: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Page 4: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 6

CenárioAtual GraalVM

PERFORMANCE

INTEROPERABILIDADE

TOOLING

Apenaslinguagenscomaltoinvestimento

Altaperformanceparatodasaslinguagens

Altocustodeserialização Zerooverhead

Cadalinguagemcomsuasprópriasferramentas(debug,profiling,etc)

Ferramentasúnicasparatodasaslinguagens

Page 5: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 7

Comparaçãoentrelinguagens

Meta

Page 6: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 8

Page 7: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 9

Page 8: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 10

Page 9: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 11

Comparativo`clamp`emvárioscenários

Page 10: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 12

Page 11: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

ImplementaçõesconvencionaisemitembytecodeparaaJVM–omesmoqueéfeitopelocompiladorJava

Confidential–OracleInternal/Restricted/HighlyRestricted 13

Page 12: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 14

Hotspot

JIT

Page 13: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 15

Hotspot

JITGraalVM

Page 14: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 16

Hotspot

GraalVM

Truffle

Page 15: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 17

Page 16: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Esclarecendoterminologiasefuncionalidades

• GraaléumcompiladorJITparaaJVM• GraalVMéaJVMcomGraal,Truffleeaslinguagensincluídas• OTruffleusaoGraalporvocê

Confidential–OracleInternal/Restricted/HighlyRestricted 18

Page 17: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

InterfaceentreTruffleeGraal

Confidential–OracleInternal/Restricted/HighlyRestricted 19

Page 18: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

InterfaceentreTruffleeGraal

20

Chamadafrequente

Page 19: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

InterfaceentreTruffleeGraal

21

Page 20: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

InterfaceentreTruffleeGraal

22

Chamadafrequente

Page 21: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

InterfaceentreTruffleeGraal

23

Page 22: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

• Aideianãoémisturarcódigodediferenteslinguagens• Removeoquesito“performance”aoescolherumalinguagem• Permiteintercâmbiodebibliotecasentrelinguagens

Confidential–OracleInternal/Restricted/HighlyRestricted 24

Page 23: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

•  Inclui– JVM(REouDK)– Java– Javascript– Ruby– R– Outrasacaminho!

• MacouLinux

25

GraalVM– Tudoemumúnicopacote

Page 24: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Java10+

java-XX:+UnlockExperimentalVMOptions-XX:+UseJVMCICompiler-jar...

Parabéns,vocêestáusandoGraal!J

Confidential–OracleInternal/Restricted/HighlyRestricted 26

Page 25: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

PorqueoGraalVMémaisrápido?

• AnosdepesquisaparacriarumcompiladorJITmaisrápido• CompiladorJITescritoemlinguagemdealtonível(Java)aoinvésdeC++,permitindosuaevoluçãodeformamaisfácilesegura• Otimizaçõesdeescapeanalysiseinlining(arquiteturadeprocessamento)

Confidential–OracleInternal/Restricted/HighlyRestricted 27

Page 26: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 28

Estáprontoparaprodução?

Page 27: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 29

Page 28: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Twitter&GraalVM

•  EstáemproduçãonoTwitter!•  Elesdizemquejáeconomizaram“centenasdemilharesdedólares”• MicroservicesemScala• UtilizamaversãoCommunity;aperformancepoderiaseraindamelhorcomaversãocomercial

Confidential–OracleInternal/Restricted/HighlyRestricted 30

13%maisrápidocomGraalVM

Page 29: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 31

Page 30: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

@elderjavabook.eldermoraes.com

Page 31: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Java@CloudAge

bit.ly/javacloudage

Page 32: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 34

Visiteonossoestande

Façaumtrial

Ganheumbrinde!

Façaumhandson

Ganheoutrobrinde!

Page 33: The quest to the language Graal: one JVM to rule them all · 29.04.2019  · • Compilador JIT escrito em linguagem de alto nível (Java) ao invés de C++, permitindo sua evolução

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 35Confidential–OracleInternal/Restricted/HighlyRestricted