Great Lakes Software Symposium
November 13 - 15, 2009 - Chicago, IL
View the event details here ».
Stupid JIT Tricks
Ever wondered what happens to your bytecodes when they're executed by a Java Virtual Machine? This talk provides a peek "under the hood" of modern JVMs, exploring dynamic compilation, speculative optimization, garbage collection, and some hardware-specific optimizations.
While the earliest JVMs were interpreted, and as such got a bad rap for performance, the VM approach to program execution provides many avenues for optimization that are not possible in traditional, statically compiled languages. This talk attempts to give a sense of just what the JVM can do to squeeze extra performance out of typical Java programs.
A few important optimizations will be discussed in detail, using examples of
java code to show how the JVM makes common operations fast, or how it
transforms your program into something completely different that produces the same
result--in less time.
- synchronization - why uncontended locks are (almost) free
- compilation - how dynamic profiling, inlining, escape analysis and other techniques allow code transformation
- memory management and garbage collection
- other optimizations - exploiting NUMA architectures, using large pages
About Brian Goetz
Brian Goetz has been a professional software developer for 20 years. He is the author of over 75 articles on software development, and his book, Java Concurrency In Practice, was published in May 2006 by Addison-Wesley. He serves on the JCP Expert Groups for JSRs 166 (concurrency utilities), 107 (caching), and 305 (annotations for safety analysis). He is a frequent presenter at JavaOne, OOPSLA, JavaPolis, SDWest, and the No Fluff Just Stuff Software Symposium Tour. Brian is a Sr. Staff Engineer at Sun Microsystems.More About Brian »