To use the feature, you need a JVM that supports Low-Overhead Heap Profiling, introduced with JEP 331. Note that this feature is available only for Java processes.
Memory profiling enables you to understand the memory allocation and garbage collection behavior of your applications over time. It helps you identify method calls in the context within which most memory was allocated and combine this information with the number of allocated objects. The Survivor perspective helps you to understand the context within which your long-living objects (objects that survive multiple garbage collection cycles) are created.
You have the following options for accessing memory profiling:
via diagnostic tools
Profiling & Optimization and select Continuous CPU profiling.via process details
Go to Hosts (previous Dynatrace) or
Hosts Classic and select the required host.
On the host page, go to Process analysis and select the process you're interested in.
If you are using the classic host page design, to find the processes list go to Processes.
Do one of the following:
Select More (…) > Memory profiling to open the All allocations tab.
Open the JVM metrics tab and select Analyze suspension to directly open the Survivors tab.

You can select any timeframe for the analysis, independent of the global timeframe. We recommend that you exclude third-party libraries from the analysis to focus on code that is under your control.
The All allocations view shows how many times garbage collection ran and how much memory is allocated. At the bottom of the page, you can find different analysis options, such as Allocation hotspots, Flame graph, and Hotspot APIs.
In the Allocation hotspots tab, a table shows the methods of the analyzed process that consume most of the memory.

The Allocated types column shows objects that are allocated only in the method itself. These don't apply to any subsequently called methods.
You can exclude third-party APIs from this view by selecting More (…) > API detection rules in the Actions column.
When you select a method in the Allocation hotspots tab or in the Flame graph tab, you can analyze the stack trace by selecting Called methods in the upper-right corner of the tab.
When you find out which methods consume most of the memory, you can check their longevity from the Survivors view. The view shows:
Note that objects that survived multiple garbage collections contribute multiple times to the survived memory amount.
At the bottom of the page, you can find different analysis options, such as Survivor hotspots, Flame graph, and Hotspot APIs.
In the Survivor hotspots tab, a table shows the methods that created objects that account for most of the survived memory.

By varying the analysis timeframe you can find the time when these objects were created.
The Survived types column shows objects that are allocated only in the method itself. These don't apply to any subsequently called methods.
You can exclude third-party APIs from this view, by selecting More (…) > API detection rules under the Actions column.
When you select a method on the Survivor hotspots tab or Flame graph tab, you can analyze the stack trace by selecting Called methods in the upper-right corner of the tab. This page shows every method in the stack trace, including third-party methods.
To focus the analysis on your code, we recommend that you define third-party library APIs. To do this, you need to mark a user-defined API as a third-party library.
The Called method page is configured to display all methods, including third-party APIs. When you define third-party library APIs, these are not excluded from the Called method views.
Profiling & Optimization