HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

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.

Figure 1

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).

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.

Figure 3

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. [email protected]

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.
      E-mail: [email protected]

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.