Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

GraalVM how to speedup & lover footprint of your app by doing nothing*

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 34 Publicité
Publicité

Plus De Contenu Connexe

Plus récents (20)

Publicité

GraalVM how to speedup & lover footprint of your app by doing nothing*

  1. 1. GraalVM Native Image how to speedup & significantly lower footprint of your app by doing nothing* Evgeny Hanikbloom @CommIt | 2022
  2. 2. GraalVM NoFJD (Not Only for Java Developers ©) Evgeny Hanikbloom @CommIt | 2022
  3. 3. GraalVM What is is Evgeny Hanikbloom @CommIt | 2022 GraalVM is a universal virtual machine for running applications written in JavaScript, Python, Ruby, R, JVM- based languages like Java, Scala, Groovy, Kotlin, Clojure, and LLVM-based languages such as C and C++.
  4. 4. GraalVM What is is Evgeny Hanikbloom @CommIt | 2022
  5. 5. GraalVM Architecture Evgeny Hanikbloom @CommIt | 2022
  6. 6. GraalVM What is is Evgeny Hanikbloom @CommIt | 2022
  7. 7. GraalVM What is is Evgeny Hanikbloom @CommIt | 2022
  8. 8. GraalVM What is is Evgeny Hanikbloom @CommIt | 2022
  9. 9. GraalVM What is is Evgeny Hanikbloom @CommIt | 2022
  10. 10. GraalVM What is is Evgeny Hanikbloom @CommIt | 2022 • Drop-in replacement for Java 8 and Java 11, Java 19* • Run your Java application faster • High-performance JavaScript, Python, Ruby, R, ... • The first VM for true polyglot programming • Ahead-of-time compilation for Java (AOT) • Create standalone binaries with low footprint • Implement your own language or DSL • Truffle framework
  11. 11. GraalVM Polyglot Example Evgeny Hanikbloom @CommIt | 2022
  12. 12. GraalVM Polyglot Example Evgeny Hanikbloom @CommIt | 2022
  13. 13. GraalVM : AOT | JIT Evgeny Hanikbloom @CommIt | 2022
  14. 14. Substrate VM Evgeny Hanikbloom @CommIt | 2022
  15. 15. GraalVM AOT for Python you say ? Evgeny Hanikbloom @CommIt | 2022 “By default, GraalVM runs Python from a binary, compiled ahead-of-time with Native Image, yielding faster startup time and lower footprint. Although the ahead-of-time compiled binary includes the Python and LLVM interpreters, in order to interoperate with other languages you have to supply the --jvm argument. This instructs the launcher to run on the JVM instead of in Native Image mode. Thus, you will notice a longer startup time.”
  16. 16. JIT : Definition Evgeny Hanikbloom @CommIt | 2022 In computing, just-in-time (JIT) compilation (also dynamic translation or run-time compilations) is a way of executing computer code that involves compilation during execution of a program — at run time — rather than prior to execution.
  17. 17. AOT : Definition Evgeny Hanikbloom @CommIt | 2022 In computer science, ahead-of-time compilation (AOT compilation) is the act of compiling a higher-level programming language such as C or C++, or an intermediate representation such as Java bytecode or .NET Framework Common Intermediate Language (CIL) code, into a native (system-dependent) machine code so that the resulting binary file can execute natively.
  18. 18. Currently Startup Speed Peak Throughput Packaging Size Max Latency 21 Memory Footprint AOT JIT GraalVM : AOT VS JIT
  19. 19. Goal Packaging Size Max Latency 22 Startup Speed Memory Footprint AOT JIT Peak Throughput GraalVM : AOT VS JIT
  20. 20. GraalVM Summary Evgeny Hanikbloom @CommIt | 2022 1. GraalVM allows users to write polyglot applications that seamlessly pass values from one language to another by means of the Truffle language implementation framework (henceforth “Truffle”).
  21. 21. GraalVM Toolset Evgeny Hanikbloom @CommIt | 2022 GraalVM comes with a jvm based set of tools, but due to polyglot nature of the platform all these tools now can be used for any language that is natively supported. Think about VisualVM, Profiler & so on
  22. 22. GraalVM Toolset Evgeny Hanikbloom @CommIt | 2022 POLYGLOT STACK TRACE
  23. 23. GraalVM Toolset Evgeny Hanikbloom @CommIt | 2022 POLYGLOT HEAP DUMP
  24. 24. GraalVM Narive Image Evgeny Hanikbloom @CommIt | 2022 GraalVM comes with a jvm based set of tools, but due to polyglot nature of the platform all these tools now can be used for any language that is natively supported. Think about VisualVM, Profiler & so on
  25. 25. GraalVM Narive Image performance Evgeny Hanikbloom @CommIt | 2022
  26. 26. GraalVM Narive Image performance Evgeny Hanikbloom @CommIt | 2022
  27. 27. DEMO Evgeny Hanikbloom @CommIt | 2022
  28. 28. GraalVM Maturity Evgeny Hanikbloom @CommIt | 2022 • 1st public release : 1.0.0 - Apr 2018 • Latest release : 22.3.0 – Oct 2022 • Backed by : Oracle • Used by :
  29. 29. GraalVM Release schedule Evgeny Hanikbloom @CommIt | 2022
  30. 30. Evgeny Hanikbloom @CommIt | 2022
  31. 31. Thank you Evgeny Hanikbloom @CommIt | 2022

×