Skip to Main Content

Breadcrumb for learning path

Main Parent

Learning Path Details Parent




Java Virtual Machine Troubleshooting

Long response time? Dropped client requests? Memory leaks? How’s the memory performance of your Java application? Enroll today, and learn how to 1)Understand Memory Management and Garbage Collection, 2)Recognize the Symptoms of Memory Problems, and 3)Utilize Diagnostic Data Collection and Analysis tools.

Enroll the User-Public



inetrmediate Intermediate
duration 274 Min
modules 4 Modules

Learning Path Contents

Module Sections Topics and more

  • About This Course
      duration 1 Min
    This course was previously offered as a Massive Open Online Course (MOOC), and is now available as a Learning Path. All of the content is available, and you can continue to use the MOOC Community Forum to get answers and ask questions. Happy learning!
    • If you are interested in learning why our Java applications might exhibit performance problems, abnormal memory usage growth or sometimes even fail with OutOfMemoryError exceptions, and you want to learn how these problems can be diagnosed and eradicated, then this course is for you! This course talks about different memory issues that we may come across with our java applications, and goes in detail on how we should approach these issues, what diagnostic tools we should use to collect the interesting diagnostic data, and what tools can help us analyze that data to get to the bottom of these memory problems.

      This learning path has three lessons, and in these lessons we will discover various aspects of memory management, garbage collectors implemented in the JVM, and what kind of memory problems we might encounter with our java applications. We will explore various diagnostic and troubleshooting tools that can help us in dealing with the memory related issues.

      Lets’ start troubleshooting!


    Cloud Trial
    • An Oracle Cloud account is not necessary for this course. However, if you're curious to try the cloud, trial versions are available:

  • Lesson 1
      duration 88 Min
    Hotspot JVM Memory Management
    • Hotspot JVM Memory Management

      Memory is managed automatically in the HotSpot JVM. The Garbage Collectors in the JVM manage memory freeing the Java programmers from worrying about the object de-allocations. In order to troubleshoot memory related problems, it is important to first understand how memory management works.

      This lesson will discuss the process of automatic memory management, and by using simple examples will explain how memory is managed in the HotSpot JVM. We will also talk about the concept of generational garbage collection, and explore the different memory spaces and garbage collectors implemented in the HotSpot JVM. Towards the end of this lesson we will go though the garbage collectors related changes that have been made between different Java versions.

      As you progress through the materials, you will notice that the Oracle Learning Library adds a green check mark next to each item that you have accessed (You must be logged in). This helps you track your progress.

    Instructional Materials
    Additional Resources
  • Lesson 2
      duration 77 Min
    Dissecting Memory Problems
    • Dissecting Memory Problems

      How do we figure out that an application is going through memory problems? In this lesson, we will talk about the symptoms in an application behavior that can give us an indication about that. For example, poor performance of an application could be the result of a memory leak in the application!

      We’ll also see what could be the causes of memory issues, and will talk in detail about the various OutOfMemoryError exception messages that the JVM can report when any of its memory pools runs out of space.

    Instructional Materials
    Additional Resources
  • Lesson 3
      duration 108 Min
    Diagnostic Data Collection and Analysis Tools
    • Diagnostic Data Collection and Analysis Tool

      By now you have learned how memory is managed in the HotSpot JVM, what are the different memory pools and the garbage collectors implemented in it, what kind of memory issues we might encounter, what could be their causes and how they can impact the application behavior. But what do we do when we have determined that a memory leak exists in our application? This lesson explains exactly that!

      In this lesson, we will learn which diagnostic data can help us get insights into memory problems. We will explore the diagnostic tools that we can use to collect the useful diagnostic data, and also go over the debugging and troubleshooting tools that can be used to analyze the collected data. By looking at examples, we will learn methods and techniques to troubleshoot and get to the root cause of various memory issues.

      Enjoy the digging!

    Instructional Materials
    Additional Resources