Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The need for speed. What is GraalVM?

245 views

Published on

GraalVM is a recent development from Oracle. It's supposed to replace HotSpot just-in-time compiler technology, but actually, it's much more. From a JIT compiler to a language implementation framework for JVM to a native image generator, it's going to change how software for JVM is written and run. During the presentation, we will explore the new possibilities and benefits provided by GraalVM.

Published in: Software
  • Be the first to comment

  • Be the first to like this

The need for speed. What is GraalVM?

  1. 1. MACIEJ PRZEPIÓRA / SENIOR DEVELOPER The Need for Speed What is GraalVM?
  2. 2. Maciej Przepióra Molecular biologist/developer/ homebrewer ABOUT ME
  3. 3. What’s 
 current JVM status? Why GraalVM is needed? PRESENTATION PLAN What is GraalVM? And what 
 deep magic it uses? Is it worth my 9me? And how to get started?
  4. 4. Why GraalVM is needed? What’s the current status of JVM?
  5. 5. Java is slow CONTROVERSY 1 CONTROVERSY 2 Java is fast
  6. 6. IS JAVA FAST OR SLOW? Of course, it depends
  7. 7. Stack-based VM interpreEng byte codes
  8. 8. JIT HotSpot has been around for last 20 years
  9. 9. JIT On the other hand, HotSpot has been around for last 20 years
  10. 10. HotSpot is opEmised for DC deployments
  11. 11. CONTROVERSY 3 Java is not cloud-friendly
  12. 12. But Spring Boot Cloud?
 But NeOlix OSS?
  13. 13. CONTROVERSY 4 Java is not the best language in the whole world
  14. 14. Again, it depends.
  15. 15. Polyglot programming
  16. 16. Polyglot programming on JVM
  17. 17. Polyglot programming out of JVM
  18. 18. Sloooow INTERPROCESS IN-PROCESS Hard
  19. 19. What if I want to implement a new language?
  20. 20. 3. Bytecode & bc interpreter Like Java 1.0! 1. Parser + AST interpreter That’s how Ruby used to work 2. Run9me (GC, threads etc.) 4. JIT compiler Good luck with that!
  21. 21. Foreign Func9ons Interface C is universal interface FFI
  22. 22. It’s a bit easier on JVM
  23. 23. 3. Bytecode & bc interpreter Like Java 1.0! 1. Parser + AST interpreter That’s how Ruby used to work 2. Run9me (GC, threads etc.) 4. JIT compiler Good luck with that!
  24. 24. …but HotSpot is a black-box.
  25. 25. SUMMARY HotSpot is deep magic and has its own issues, but sEll seems beUer than other opEons
  26. 26. What is GraalVM?
  27. 27. JIT compiler
  28. 28. Language implementaEon framework (Truffle)
  29. 29. SubstrateVM & naEve-image
  30. 30. GraalVM deep magic
  31. 31. GRAALVM JIT COMPILER ParEal Escape Analysis •Enhanced escape analysis •Allows for: •Scalar replacement •Lock elision
  32. 32. TRUFFLE ParEal evaluaEon 
 & Futamura projecEons
  33. 33. PARTIAL EVALUATION Program: IstaEc × Idynamic = O
  34. 34. 1ST FUTAMURA PROJECTION Interpreted program: IstaEc × Idynamic = O
  35. 35. NATIVE IMAGE Closed-world principle
  36. 36. And how to get started? Is it worth your Eme?
  37. 37. SEll in research
  38. 38. CE is less powerful than EE
  39. 39. No official support from Spring
  40. 40. How to get started?
  41. 41. Micronaut
  42. 42. QuesEons?
  43. 43. Join our super team! spartez.com/careers

×