Summary
In this chapter, we went through Graal just-in-time and ahead-of-time compilers in detail. We took sample code and looked at how Graal JIT performs various optimizations. We also went through, in detail, how to understand Graal graphs. This is critical knowledge that will help in analyzing and identifying optimizations that we can do during development, to speed up Graal JIT compilation at runtime.
The chapter provided detailed instructions on how to build native images, and how to optimize native images using profile-guided optimization. We took sample code and compiled native image, and also found out how a native image works internally. We identified code issues that might cause native images to run slower than just-in-time compilers. We also covered the limitations of native images, and when to use native images. We explored various build time and runtime configurations to optimize a build and running native images.
In the next chapter, we will get into understanding...