With any comprehensive, large-scale programming language, if you’re not careful during your development processes, you can end up with a bloated, poorly performing application. This course examines techniques and methods that you can employ to optimize your Java code and squeeze more efficiency out of your applications. You’ll look at JVM subsystems, modern processor technologies and how you can best utilize them, and how to diagnose an application to find trouble areas that might be affecting its performance. This course is designed for intermediate- to advanced-level programmers. Here are just some of the areas in which this course can benefit you:

Review the historical context of Moore’s Law and how Java has benefitted from it over the years

Examine the technical complexities of the JVM subsystems

See how to design and set up monitoring and logging systems to help you analyze and assess how your code is functioning

Learn both basic and advanced garbage collection techniques

Compile AOT and JIT, including tiered compilation and how it really works

Investigate concurrent techniques such as synchronization, OS-level locking, and non-availability to single-core processors

Your host, Ben Evans is an author, speaker, consultant and educator. He is a co-founder of jClarity, a startup which delivers performance tools and services to help development and ops teams. He helps to organize the London Java Community and serves on the Java Community Process Executive Committee, helping to define standards for the Java ecosystem. He is a Java Champion, JavaOne Rockstar Speaker and a Java Editor at InfoQ. Ben travels frequently and speaks regularly, all over the world.