Through this session, the audience will get an under-the-hood look at OpenJ9 JVM/GC technology, they will be exposed to innovations in the JVM space, and overall gain a better understanding of the implications of GC on application performance by exploring a cool new optimization - Adaptive Threading!
This session intends to take a deep dive into Eclipse OpenJ9 JVM/GC internals, it first lays out the basics of GC and builds upon them to explore performance. The presentation will heavily focus on GC parallelism and Adaptive Threading, a new innovative GC optimization for self-tuning parallelism to minimize application pause times. The role of parallelism in reducing pause times and the way in which GC tasks are parallelized to take advantage of available resources are explored. The audience will see the effects of GC parallelism on performance and observe how parallelism can be unexpectedly detrimental to performance. The session then shifts focus onto Adaptive Threading and signifies the need to develop an optimization for self-tuning GC threading/parallelism. We explore how Adaptive Threading aims to find the “goldilocks” or equilibrium number of threads, where GC achieves peak performance through parallelism. With the use of heuristics and a threading model, an optimal thread count can be projected, and the thread count can be adjusted dynamically between GC cycles to minimize inefficient use of threads. The presentation showcases how this cannot be done trivially; accurate decisions must be made to determine when to adjust the thread count, and how much to adjust by.
Read more...