Is your Java service slower than you would like; consuming too many system resources or lagging in performance as load increases? In this course, Java Performance Tuning, you will learn how to maximize the performance of Java applications. First, you will discover tools and techniques for analyzing the performance of your application and troubleshooting performance issues. Next, you will learn about the JVM internals that influence performance and how to tune them. Finally, you will gain best practices for writing high performing application code. When you’re finished with this course, you will have the skills and knowledge needed to build and run highly performant Java applications in production.
Tim Ojo is a software developer with a fondness for building scalable backend applications in Java, C#, Python, and Scala. He actively contributes to the developer community by blogging and speaking about topics, such as search engines, recommender systems, NoSQL databases, general developer best practices, and data science.
Course Overview Hi everyone. My name is Tim Ojo, and I'd like to welcome you to my Pluralsight course on Java Performance Tuning. Java is one of the most popular programming languages in the world. It provides ease of use, automatic memory management, portability, safety, security, and an excellent ecosystem. But is it fast? And the answer is yes. For several workloads, Java's performance is on par with or even exceeds C++. But getting the best performance out of Java requires some skill and knowledge of how computers works, how the Java virtual machine works, and how to structure applications correctly. That's why this course exists. In this course, you'll discover tools and techniques for analyzing the performance of your application and troubleshooting performance issues, tools such as Java Profilers, Java Mission Control, jcmd, and JMeter. You'll learn about the JVM internals that influence performance such as the different garbage collection and JIT compilation options and how to tune them. And you'll gain best practices for writing high-performing application code. By the end of this course, you'll advance your mastery of the Java language and ecosystem and be equipped with the skills and knowledge needed to get the best performance out of your application. Before beginning this course, you should be fairly proficient in writing Java applications already. Beginner courses in the Java skill path on Pluralsight will help give you the foundation you need. I hope you'll join me for this fun and enlightening look at Java Performance Tuning. Thank you.
Profiling Java Applications One of the best tools we have today for understanding application behavior and troubleshooting performance issues is Java profilers. Java profilers monitor JVM execution at the bytecode level and can provide information on thread execution and locks, heap memory usage, garbage collection, hot methods, exceptions, class loading, and more. In this module, We're going to talk about how Java profilers work and the repercussions of the different profiling modes. Next, we'll take a quick survey of the profiler landscape as it exists at the time of this recording before honing in on Java Flight Recorder. In the Java Flight Recorder topic, we'll learn about the different ways to collect events and start recordings, then we'll put this into practice and analyze the recording of the Energymart JVM. Here we'll see the different functions of JFR and how to use Flight Recorder to troubleshoot Java applications. So let's get started.