DevPartner 3.0.1 Java Edition
by Compuware Corporation
DevPartner Java Edition is a profiling tool from Compuware that helps developers envision the reality of their designs and implementations. It clearly shows the performance, memory, and code coverage of various modules in your project. If you always wondered how your particular implementation would behave and want to buy a tool to show the profiling statistics of your project, this review should interest you.
DevPartner is a good tool for getting a correct picture of your application. It tells you how it is performing, how much memory each module of the application takes when executing, and how many times a piece of code has been executed.
It can be downloaded, installed, and configured very easily; I didn't run into any problems. DevPartner can be attached to various application servers for profiling. It does cover the popular servers like WebSphere, WebLogic, etc., but I wish it could be hooked to others as well, for example, JBoss. Figure 1 shows one such setup screen for Apache's Tomcat server.
The server is automatically run by DevPartner when the user hits the Continue button. The state of the server is also indicated on the upper panel of this screen. As the server is executing an application, profiling data can be collected and viewed at any time.
The three main features - Performance, Memory Analysis, and Code Coverage - can be selected by a dropdown from the configuration screen shown in Figure 1. To change the feature from Performance to Memory Analysis, first stop the server, select Memory Analysis from the dropdown, then restart the server. This clearly is a drawback and a tedious process.
Performance
This tool measures performance fairly accurately in many different ways, such as percentages, average time, etc. To see problematic areas at a glance in an application, the percentage method is quick to show the user the areas where more time is being spent, and it can show you how much time is spent in each method of a class. The user can also browse the source code, if the paths are set right.
Memory Analysis
DevPartner also shows the memory used by any part of an application. The representation is very graphical and the user is allowed to drill down to methods and also browse the source code. It can show memory on a per-thread basis too.
Memory analysis is also shown in real time as the project is executed by the server. The user can choose to run garbage collection manually by hitting a button on a screen (see Figure 2).
Code coverage
Yet another presentation is the code coverage. Here the tool gives you a count of the number of times a part of the application has been executed during a particular run. This can be very helpful to efficiently trimming the code to improve performance.
Other Features
With each of these features DevPartner provides useful views. One such example is the method call trace view (see Figure 3). This gives a pictorial view of how various methods are called in an application during execution.
Another feature worth noting - it can be integrated with an IDE. Unfortunately, the IDEs that it supports are limited. It supports JBuilder and other application server-embedded IDEs.
When you start using DevPartner you'll notice that you don't have to go to its help that often, as each button provides help statements.
Summary
I used DevPartner on a project with a Web application running on Tomcat 4.1.18. It performed fairly well compared to similar tools in the market. It was fast to start and restart. Also, it was pretty responsive when viewing the source code and gathering statistics for a run.
Overall, I found DevPartner to be very useful and it can save you tons of time and effort while fine-tuning an application. I really would like it if it supported more application servers and IDEs, as this tool can increase the quality of your applications.
Snapshot
Target Audience: Software developers
Level: Beginner to advanced
Pros:
Easy to use
Configurable
Descriptive views
Source code browser
Con:
Supports limited application servers
Compuware Corporation
One Campus Martius
Detroit, Michigan 48226
Phone: 800 521-9353
Web: www.compuware.com
Specifications
Platforms: Windows XP/2000/NT/98/ME; Solaris 8 and 9; Red Hat Linux 7.3 or 8.0 Personal, Professional, and Advanced Server Editions
Java Virtual Machine: Sun 1.3.1 (32-bit as Classic and Hotspot) or 1.4 (32-bit); IBM 1.3.1 (32-bit as Classic and Hotspot) or 1.4
Java Application Servers: Windows, Solaris and Linux; BEA WebLogic 6.1, 7.0; IBM WebSphere 4.0.3 and 5.0, Advanced, Advanced Single Server,
and Advanced Developer Editions (also available on AIX); Oracle9iAS v9.0.2 or v9.0.3, Standard and Enterprise Editions; Sun ONE Application Server (formerly known as iPlanet) 6.5 and 7.0; Tomcat 3.3.1 or 4.1
Test Environment
Win XP Pro, 2GHz CPU, 512MB RAM
About the Author
Vijay Phagura, a professional Java/J2EE consultant, has over 12 years of experience in software architecture and development. He specializes in designing and developing software using J2EE and other Java technologies.
vphagura@yahoo.com