Fully featured low overhead profiler for Java EE and Java SE platforms.
Easy-to-use performance and memory .NET profiler for Windows, Linux and macOS.
Secure and easy profiling in cloud, containers and clustered environments.
Performance monitoring and profiling of Jenkins, Bamboo, TeamCity, Gradle, Maven, Ant and JUnit.

Memory telemetry

The YourKit .NET Profiler collects a wide range of .NET runtime telemetries to aid in the monitoring and optimization of .NET applications. Among these, memory telemetry provides detailed insights into the memory usage patterns of your application. This includes data on heap usage, garbage collector activity, and object allocation activity. By analyzing these charts, you can optimize your application's memory usage, reduce GC overhead, and improve overall performance.

Memory usage charts

Memory usage charts help you visualize how your application consumes memory over time. These charts display the memory used by your application, including CLR heap and process memory. Heap memory is where .NET objects are allocated and deallocated, while process memory is used for other purposes, such as storing class metadata, and thread stacks.

Memory usage charts

Here's how you can use memory usage charts in .NET profiling:

1. Identify memory leaks: A memory leak occurs when an application continuously consumes more memory without releasing it. By inspecting memory usage charts, you can identify memory leaks by observing a steady increase in memory usage over time without a corresponding decrease.

2. Analyze memory usage patterns: Memory usage charts can reveal patterns in memory allocation and deallocation, helping you identify problematic areas in your code. For example, if your application's memory usage frequently spikes, it might indicate that certain parts of your code are creating large temporary objects.

3. Optimize memory consumption: By analyzing memory usage charts, you can identify which parts of your code use excessive memory and optimize them accordingly. This may involve modifying your data structures, implementing caching mechanisms, or using more memory-efficient algorithms.

Garbage collector activity charts

Garbage collector (GC) activity charts display the frequency and duration of garbage collection events in your application. These charts help you understand how GC affects your application's performance.

GC activity charts

Here's how you can use GC activity charts in .NET memory profiling:

1. Detect GC overhead: Frequent and long-lasting GC events can significantly impact your application's performance. By analyzing GC activity charts, you can detect excessive GC overhead and take corrective actions.

2. Tune garbage collector settings: GC activity charts can help you identify the most suitable garbage collector and its configuration for your application. .NET provides several garbage collectors, such as the Workstation GC and Server GC. By analyzing the GC activity chart, you can choose the most appropriate GC for your application and adjust its configuration parameters accordingly.

3. Identify potential memory leaks: Memory leaks can be detected by observing the heap memory before and after a full GC event. If the heap memory remains high after a full GC, it may indicate a memory leak. By comparing memory usage charts and GC activity charts, you can identify potential memory leaks.

Object allocation activity charts

Memory allocation is a crucial aspect of any .NET application. It directly impacts the application's performance and efficiency. YourKit .NET Profiler provides memory allocation activity charts to monitor memory usage and identify bottlenecks. These charts display real-time data about the number of objects allocated per second and the amount of memory allocated per second.

Object allocation activity charts

Here are some ways memory allocation activity charts can be used in .NET profiling:

1. Detecting excessive memory allocation: Look for spikes in memory allocation. High-frequency allocation of large objects can trigger frequent garbage collection, affecting application performance. Analyze the code responsible for these spikes and consider optimizing or refactoring it.

2. Optimizing garbage collection pauses: Examine the memory allocation charts along with GC activity charts. Frequent and prolonged garbage collection can affect application performance. If there's a direct correlation between memory allocation spikes and GC activity, consider optimizing the memory allocation patterns to reduce GC pressure.

3. .NET options tuning: Adjust .NET GC settings to improve application performance.

4. Validating optimization efforts: Compare the memory allocation activity charts before and after optimization. Verify that the optimizations have reduced memory allocation, improved performance, or resolved any identified issues.

Working with telemetry charts

Clicking on chart: Clicking on a chart reveals the call stacks of the .NET threads running at that specific moment, providing a snapshot of the application's state.

Selecting the time interval: Analyzing performance over a time span is equally straightforward. By selecting a range within the telemetry data, profiler builds an estimated call tree and computes the CPU usage for that interval. This can be invaluable for pinpointing performance bottlenecks or understanding the behavior of the application during periods of high load.

Memory telemetry charts

YourKit uses cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content, to analyze our website traffic, and to understand where our visitors are coming from.

By browsing our website, you consent to our use of cookies and other tracking technologies in accordance with the Privacy Policy.