Welcome!

Java Authors: Maureen O'Gara, Bruce Armstrong, Liz McMillan, Walter H. Pinson, III, Yakov Werde

Related Topics: Java

Java: Article

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

  • More Stories By Vijay Phagura

    Vijay Phagura, a professional Java/J2EE consultant has over twelve years of experience in software architecture and development. Vijay currently consults with companies; he specializes in architecture and development of software using J2EE and other Java technologies, like JDMK.

    Comments (4) View Comments

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    Most Recent Comments
    Vikas 01/19/05 02:06:56 PM EST

    Hi,
    Devpartner may be all of the above, however, my experience with this tool has been rather dismal. I was trying to use it on Solaris 2.8 with weblogic server 8.1 and there are issues with dpj console, the GUI which allows to attach and detach. Specifically the application server testing tab has some implementation which gets in an infinite loop and never works. I am using the trial edition. Overall it seemed quite flaky. However, I heard some good reviews about it on windows platform so it maybe that solaris side of things are not well tested.

    Please beware before you jump into it. JProbe and optimizeit never had issues of this kind.

    Stuart May 03/03/04 12:18:36 PM EST

    Can you tell me why the DevPartner Java Edition did not make it into the JDJ Awards? I noticed their .NET stuff achieved many awards. I am just embarking on a profiler analysis, so I am looking for good valid info.
    --Stuart

    Vijay Phagura 02/18/04 12:37:18 PM EST

    Thanks to Fadia to have pointed out that, DevPartner does support JBoss and the utility DPJ to switch to different analysis, without stopping the server.

    These two things makes DevPartner even more useful! May be, these need more emphasis in the documentation.

    Vijay

    Fadia 02/11/04 03:10:55 PM EST

    Hi Vijay,

    I''m a software sales engineer working for Compuware. I work with the DevPartner Java tools. Thank you for your favorable article about DevPartner Java.

    There were just a couple of things that I wanted to bring to your attention though.

    1. We support the majority of application servers including JBoss and the others that you mentioned in your article. We have a global hook facility that allows us to hook into any java application, application server or batch process (the nmshell command line option is the best way to do this). Unfortunately, we only have the major application servers listed on our support list, so I can see how you may have missed this.

    2. We have a detach utility that allows DPJ to detach from a server without stopping it and reattach with a different form of analysis. So you do not need to stop the app server when you want to go from performance to memory analysis.

    Thanks again. I enjoyed reading your article.

    Take care,

    Fadia.
    510-768-5444