![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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022050209/5f5c1c23a226bf2e86310ca7/html5/thumbnails/33.jpg)
Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 35Confidential–OracleInternal/Restricted/HighlyRestricted