Introduction To JProfiler
What is JProfiler?
JProfiler is a professional tool for analyzing what is going on inside a running JVM. You can use it in development, for quality assurance and for firefighting missions when your production system experiences problems.
There are four main topics that JProfiler deals with:
Method callsThis is commonly called "CPU profiling". Method calls can be measured and visualized in different ways. The analysis of method calls helps you to understand what your application is doing and find ways to improve its performance.
AllocationsAnalyzing objects on the heap with respect to their allocations, reference chains and garbage collection falls into the category of "memory profiling". This functionality enables you to fix memory leaks, use less memory in general and allocate fewer temporary objects.
Threads and locksThreads can hold locks, for example by synchronizing on an object. When multiple threads cooperate, deadlocks can occur and JProfiler can visualize them for you. Also, locks can be contended, meaning that threads have to wait before they can acquire them. JProfiler provides insight into threads and their various locking situations.
Higher level subsystemsMany performance problems occur on a higher semantic level. For example, with JDBC calls, you probably want to find out which SQL statement is the slowest. For subsystems like that, JProfiler offers "probes" that attach specific payloads to the call tree.
JProfiler's UI is delivered as a desktop application. You can interactively profile a live JVM or profile automatically without using the UI. Profiling data is persisted in snapshots that can be opened with the JProfiler UI. In addition, command line tools and build tool integrations help you with automating profiling sessions.
How do I continue?
This documentation is intended to be read in sequence, with later help topics building on the content of previous ones.
First, a technical overview over the architecture will help you to understand how profiling works.
Subsequent chapters build your expertise with respect to different functionality in JProfiler. The sections at the end are optional readings that should be consulted if you need certain features.
We appreciate your feedback. If you feel that there's a lack of documentation in a certain area or if you find inaccuracies in the documentation, please don't hesitate to contact us at [email protected].
If you are using the keyboard for navigation, press
F4 to switch between the index and the
content area. The keys
k move between help topics and the keys
d move up and down when there is a hierarchy of chapters.