JProfiler's intuitive UI helps to resolve performance bottlenecks, pin down memory leaks and understand threading issues.
- Ease of use: JProfiler is just that: simple and powerful at the same time. Configuring sessions is straight-forward, third party integrations make getting started a breeze and profiling data is presented in a natural way. On all levels, JProfiler has been carefully designed to help you get started with solving your problems.
- Database profiling for JDBC, JPA and NoSQL: JProfiler's JDBC and JPA/Hibernate probes as well as the NoSQL probes for MongoDB, Cassandra and HBase show the reasons for slow database access and how slow statements are called by your code.
- Support for Java Enterprise Edition: Dedicated support for JEE is present in most views in JProfiler. Also, JProfiler adds a semantic layer on top of the low-level profiling data, like JDBC, JPA/Hibernate, JMS and JNDI calls that are presented in the CPU profiling views. With its JEE support, JProfiler bridges the gap between a code profiler and a high-level JEE monitoring tool.
- Higher level profiling data: JProfiler has a number of probes that show you higher level data from interesting subsystems in the JRE. In addition to the Java EE subsystems like JDBC, JPA/Hibernate, JSP/Servlets, JMS, web services and JNDI, JProfiler also presents high level information about RMI calls, files, sockets and processes.
- Stellar analysis of memory leaks: Finding a memory leak can be impossible without the right tool. JProfiler's heap walker offers you an intuitive interface to solve both simple and complex memory problems. 5 different views and lots of inspections show different aspects of the current set of objects.
- Extensive QA capabilities: JProfiler is ideally suited as a QA tool, both during development as well as for dedicated QA teams. The rich functionality around snapshot comparisons makes it easy to track progress.
- Broadest support for platforms, IDEs and application servers: JProfiler integrates into your environment: We provide native agent libraries for a wide range of platforms, both for 32-bit and 64-bit JVMs. Integrations into all popular IDEs makes profiling during development as easy as running your application.
- Low overhead: JProfiler records data only when you need it. In fact, you can start your application with the JProfiler agent and attach the JProfiler GUI at a later time. JProfiler shows you how your profiling settings will impact performance and offers you templates to quickly select profiling settings for common use cases.
- The powerful CPU profiler: Fixing performance bottlenecks is the most frequent use case for a profiler. However, CPU data can be overwhelming in its level of detail and the way data is collected can make a huge difference in usability. With JProfiler, you have a decisive advantage when trying to find the reason for a problem.
- The integrated thread profiler: Problems related to threading are much more frequent than one might assume. Without a thread profiler, you only have a minimal chance to tackle such issues. A whole range of otherwise opaque problems can be solved when using JProfiler, such as increasing liveness in a multi-threaded application that uses too much locking. Thread profiling not only has a separate view section in JProfiler, it is also tightly integrated into the CPU profiling views.