Session: What the JVM Does With your Bytecode when Nobody's Looking

Friday, 13:00 - 13:50
Track: Java

Look at you, hacker. You think you know all there is about building apps for the JVM. You've used all the cool tools. You've written your own persistence library or web frameworks. Maybe you've even implemented a JVM language. But do you really know what happens to your code after you hand it off to the JVM? This talk will explore the guts of the OpenJDK VM, Hotspot. We'll take a few simple examples from bytecode through optimization and compilation all the way down to assembly code, and explore how you can ensure your code runs as fast as possible. We'll see how generational garbage collection works with the aid of VisualVM and learn a few JVM flags to help you tune it. We'll play with invokedynamic and show how it fits into the JVM story. And we'll chat about how you can take advantage of this newfound knowledge to be a better JVM user.

Prerequisites

Basic knowledge of bytecode

Charles Nutter

Charles Oliver Nutter has been co-lead of the JRuby project for the past four years, working on performance and Java integration, and helping to coordinate community efforts. During that time JRuby has become a premier platform for Ruby users, allowing both a gateway to Java-centric organizations as well as an excellent Ruby implementation. Charles hopes to expand JRuby’s success to other JVM languages, building the JVM into the best platform for multi-language development.

Charles Nutter

Video