IntelliJ IDEA
 
Get IntelliJ IDEA

Read the profiler snapshot

Last modified: 13 November 2024

The snapshot made with the IntelliJ Profiler configuration can be viewed in the following modes:

  • CPU Time – the subset of samples that corresponds to actual CPU work, excluding IO, waiting on locks, context-switching, and the like. Useful for identifying CPU-intensive sections, where you can get the most benefit from optimizations such as improving algorithm complexity.

  • Total Time – all samples, including those for sleeping threads. This mode is useful to consider perceived performance and actual runtime, including IO, context-switching overhead, synchronization, and so on. With it, you can spot sections that may be slowed down by external factors or suboptimal concurrency.

  • Memory Allocations – the subset of samples that corresponds to memory allocation events. This mode is useful to identify memory-intensive sections, where you can get the most benefit from optimizing the amount of primitives boxing, objects creation, and so on.

IntelliJ IDEA provides several views to analyze the snapshot:

  • In-editor hints – an intuitive way to assess the performance of the particular lines of code right in the editor

  • Call tree – a tree representing the code paths and their share in the overall CPU/memory usage

  • Flame graph – a graphic representation of the code paths that facilitates analysis and navigation by representing stack frames as visual elements

  • Method list – a flat view providing aggregated statistics for individual methods rather than code paths

  • Timeline – a visual representation of threads' activity over time