Improve Application Performance with Memory and CPU Profiler
The Profiler can be used to find memory leaks, inefficient temporary-storage issues, CPU bottlenecks, and unit test performance regressions. Use the Profiler to test and improve the performance of Java applications, applets, servlets, JavaBeans, Enterprise JavaBeans (EJBs) and JavaServer Pages (JSPs). The Memory Profiler provides real-time display of all classes used by the test program and of the number of allocated instances. The CPU Profiler displays test results for each thread or thread group for pure CPU use or for elapsed time (pure CPU and inactive phases).
View Real-Time Threading Information with Thread Debugger
The Thread Debugger displays real-time threading information for Java applications, applets, and JavaBean components. See how the program uses computer resources, as well as identify thread contentions, thread starvation, excessive locking, and deadlocks. Thread Debugger provides automatic thread and monitor usage reports that help developers prevent deadlocks and other thread issues before they occur.
Drill Down Through Java EE Protocols with Request Analyzer
Request Analyzer provides CPU performance analysis of Java EE protocols. Developers can use Request Analyzer to obtain precise drill-down information about performance bottlenecks in any one of JDBC, JNDI, CCI, RMI, EJB, JSP, JMS, or WSVC protocols. This tool also provides protocol-specific quality analysis of unclosed resources, exceptions, and other potential issues.
Improve Code Quality with Code Coverage
Code Coverage allows developers to determine the exact lines of source code being executed. In real time, you can view how frequently each class, method, and line of code is executed. Code Coverage supports testing of applications, applets, servlets, JavaBeans, Enterprise JavaBeans (EJBs), JavaServer Pages (JSPs), and virtually any other Java code. With Code Coverage, you can easily spot and remove dead code from applications, improving quality and reducing the footprint of an application.
Improve Code Quality with Audits and Metrics
The audits and metrics capabilities in J Optimizer helps solve the code quality, code review and code dependency issues typically faced in software development. J Optimizer's audits and metrics are designed to aid developers in finding and fixing problems in their code earlier in the development process. J Optimizer's audits perform a static analysis of your source code, identifying coding problems like potential race conditions, unchecked exceptions and more. J Optimizer's metrics provide a similar analysis for design problems in your project.
Remote Profiling with the J Optimizer Agent
The J Optimizer Agent enables profiling of Java applications running on remote servers, while displaying performance data in the console running on the developer's desktop. The profiling agent works with either the Java Virtual Machine Profiler Interface (JVMPI) or Java Virtual Machine Tool Interface (JVMTI).
Capture and Store Data with Snapshots
Snapshots are binary files that capture all the data from a particular test run. Snapshots can be opened for analysis in the product that generated it, such as Profiler, Code Coverage, or Request Analyzer.
Measure Impact of Code Changes with Progress Tracker
Progress Tracker enables developers to continuously monitor and measure the impact of performance changes by allowing them to compare visual snapshots of their progress. Developers can compare Profiler, Code Coverage, and Request Analyzer Snapshots, and generate reports in PDF and HTML format.
J Optimizer supports profiling of Java applications running on today's most popular commercial and open source application servers including BEA WebLogic Application Server, IBM WebSphere, JBoss, Oracle Application Server, Apache Geronimo, Apache Tomcat, and Sun GlassFish.