Azul VM Engineer Douglas Hawkins will be speaking:
How a Compiler Works — and Why It Matters to You Date: Wednesday, July 22 Time: 8:30 AM Abstract: To write efficient SQL, you need to understand SQL execution plans. And to write efficient Java, you need to understand the JVM’s execution plan. In this talk, you’ll learn how the JVM’s Just-in-Time compiler analyzes Java code. Then we’ll go through an example in detail to see how code optimization really works.
Measuring and Profiling Java Performance Date: Wednesday, July 22 Time: 10:30 AM Abstract: Today, we all benefit from the sophistication of modern compilers and hardware, but that extra complexity can also make it difficult to reason about performance. In this talk, we’ll examine some surprising performance cases and learn how to use profiling and benchmarking tools to better understand our modern execution environments.
JVM Mechanics Date: Wednesday, July 22 Time: 1:30 PM Abstract: HotSpot promises to do wonders for us by Just-in-Time (JIT) compiling the “right” code for us, but how does it makes those decisions? And, perhaps more importantly, what happens when it’s wrong? In this talk, you’ll learn through real code examples just how the JVM decides to compile your code, deoptimize your code, and stop-the-world for a GC.
Java Optimizations That Matter (and Some That Don’t) Date: Wednesday, July 22 Time: 3:15 PM Abstract: Early releases of Java performed poorly, but those issues largely disappeared long ago with the introduction of HotSpot. However, much of the performance advice for Java persists through hearsay from those early days. In this talk, we’ll forget the hearsay and take an objective look using benchmarking and profiling tools to find out which optimizations matter today and just as importantly those that don’t.
Concurrency Concepts in Java Date: Wednesday, July 22 Time: 5:00 PM Abstract: Unlike earlier languages, Java had a well-defined threading and memory model from the beginning. And over the years, Java gained new packages to help solve concurrency problems. Despite this, Java concurrency is sometimes subtle and fraught with peril. In this talk, you’ll learn these subtleties. And finally, you’ll learn how to handle concurrency by exploring the concepts behind java.util.concurrent and other concurrency libraries.