- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Running applications with the profiler
- Connect to profiled application
- Troubleshoot connection problems
- Solving performance problems
- CPU profiling
- Threads
- Deadlock detector
- Memory profiling
- Garbage collection
- Monitor profiling
- Exception profiling
- Probes: monitor events of various kinds
- Events in user interface
- Event inspections
- Built-in probes
- Probe classes
- Monitoring method invocation events
- Data storage
- Performance Charts
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Summary, snapshot annotation, automatic deobfuscation
- IDE integration
- 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?
Scalability
To avoid infinite growth of collected data, it is possible to limit the number of events to be recorded in the profiler agent.
-
When writing a probe: table API method
Table.setMinimumRecordedLastingEventTime()
suppresses recording of non-interesting short events. See the method's Javadoc for detail. Built-in probe AwtEvents is an example of using the method. -
In profiler agent: startup option
probetablelengthlimit=<number of rows>
limits the number of rows to be stored by the profiler agent per table. If a table reaches the limit, it will no longer be populated until cleared. Default value is 20000.