Supercharge Your Applications with GraalVM: Hands-on examples to optimize and extend your code using GraalVM’s high performance and polyglot capabilities
Understand the internals and architecture of GraalVM with the help of hands-on experiments and gain deep knowledge that you can apply to improve your application’s performance, interoperability, and throughput.
- Generate faster and leaner code with minimum computing resources for high performance
- Compile Java applications faster than ever to a standalone executable called native images
- Create high-performance polyglot applications that are compatible across various JVM and non-JVM languages
GraalVM is a universal virtual machine that allows programmers to compile and run applications written in both JVM and non-JVM languages. It improves the performance and efficiency of applications, making it an ideal companion for cloud-native or microservices-based applications.
This book is a hands-on guide, with step-by-step instructions on how to work with GraalVM. Starting with a quick introduction to the GraalVM architecture and how things work under the hood, you’ll discover the performance benefits of running your Java applications on GraalVM. You’ll then learn how to create native images and understand how AOT (ahead-of-time) can improve application performance significantly. The book covers examples of building polyglot applications that will help you explore the interoperability between languages running on the same VM. You’ll also see how you can use the Truffle framework to implement any language of your choice to run optimally on GraalVM.
By the end of this book, you’ll not only have learned how GraalVM is beneficial in cloud-native and microservices development but also how to leverage its capabilities to create high-performing polyglot applications.
What you will learn
- Gain a solid understanding of GraalVM and how it works under the hood
- Work with GraalVM’s high performance optimizing compiler and see how it can be used in both JIT (just-in-time) and AOT (ahead-of-time) modes
- Get to grips with the various optimizations that GraalVM performs at runtime
- Use advanced tools to analyze and diagnose performance issues in the code
- Compile, embed, run, and interoperate between languages using Truffle on GraalVM
- Build optimum microservices using popular frameworks such as Micronaut and Quarkus to create cloud-native applications
Who this book is for
This book is for JVM developers looking to optimize their application’s performance. You’ll also find this book useful if you’re a JVM developer looking to explore options to develop polyglot applications using tools from the Python, R, Ruby, or Node.js ecosystem. A solid understanding of software development concepts and prior experience working with programming languages is necessary to get started.
Table of Contents
- Evolutions of JVM
- JIT, Hotspot, and GraalVM
- GraalVM Architecture
- Graal Compiler – JIT, AOT
- Graal Compiler – Ahead of Time
- Truffle – An overview
- Graal Polyglot (Java, Node)
- GraalVM Polyglot – Java on Truffle, Python and R
- Graal Polyglot – LLVM, Ruby, WASM
- Microservices Framework and ARchitecture with Case Study