- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Start profiling
- Solving performance problems
- CPU profiling
- CPU usage estimation
- Sampling
- Asynchronous sampling
- Tracing
- Call counting
- CPU tab
- What-if: an ability to ignore particular methods or focus on particular methods only
- Comparing performance snapshots
- Sampling settings
- Tracing settings
- Threads
- Deadlock detector
- Memory profiling
- Garbage collection
- Monitor profiling
- Exception profiling
- Probes: monitor events of various kinds
- Performance Charts
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Summary, snapshot annotation, automatic deobfuscation
- Time measurement (CPU time, wall time)
- Filters
- Snapshot directory customization
- Export of profiling results to HTML, CSV, XML, plain text
- Profiler Java API
- Profiler HTTP API
- Command line tool to control profiling
- Settings
- FAQ: How to profile in my scenario?
Call counting
Call counting is one of the lightweight CPU profiling modes.
Unlike other modes only method invocations are counted, neither call stacks nor times are gathered. Use this mode to initially detect possible problems: thanks to its low overhead you may do this even in production.
It's a simple tool for identifying potential performance problems caused by suboptimal algorithms. The approach is based on assumption that methods with a big number of invocations may indicate a performance problem.
Further investigation may involve using CPU tracing or sampling to get comprehensive profiling results including times and stack traces (call tree).
Use profiler toolbar to start call counting as shown on the picture below. There are also alternate methods to start CPU profiling.

Overhead
Call counting is specially designed to have minimal possible, almost zero overhead:
- It provides a plain method list with method invocation counts. Unlike other CPU profiling modes it does not provide stack traces nor method times.
- Method invocations from different threads are summed and cannot be distinguished.
- The probes in Auto activity mode are not activated in call counting, thus high-level statistics is not collected.
See also: Profiling overhead: how to reduce or avoid.
Call counting settings
Call counting will be disabled if the startup option
disabletracing
or
disableall
is specified.