Accelerating performance of Java applications on Arm64 by Dave Neary

preview_player
Показать описание
Java application performance can be something of a dark art. In addition to performance improvements that you get "for free" by updating to a more recent JVM, there are endless knobs and switches that you can use to tune application performance, based on your application's bottlenecks and critical performance indicators.In this presentation, I will review a number of axes of application performance, with a filter of optimizing workload performance on Arm64 processors. That starts with performance improvements in the JVM: out-of-the-box performance on Arm64 improved by 30% between Java 11 and Java 21. I will share some of the improvements integrated by Oracle that led to these improvements, which will give some insight into performance-related architectural differences.Beyond JVM improvements, there are also numerous JVM configuration options that can have a dramatic effect on application performance, including JVM ergonomics around garbage collection and heap size that are often sub-optimal for a long-running cloud workload that expects to have access to almost all the resources of a VM, configuration options around memory page size that can differ across different compute architectures, and efficient usage of JVM threads to optimize consumption of hardware resources.One layer beneath that, it is possible to tune operating system configuration to allow the JVM to make more effective use of system resources by matching JVM page size to kernel memory page size, optimizing various system parameters related to system threads, I/O, or networking to reduce the time that that the operating system is the bottleneck for your application.To show the impact of some of these settings, I will use some performance analysis and debugging tools to show how you can figure out good (perhaps not optimal) values for sizing VMs, and configuring the operating system and JVM, to allow you to get the most oout of your application, while running on fast, cheap, and power-efficient Arm64 CPU cores.
Рекомендации по теме