| By Vijay Phagura | Article Rating: |
|
| February 5, 2004 12:00 AM EST | Reads: |
22,717 |
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:
Con:
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
Published February 5, 2004 Reads 22,717
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
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.
![]() |
Vikas 01/19/05 02:06:56 PM EST | |||
Hi, 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. |
||||
![]() |
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. |
||||
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Cross-Platform Mobile Website Development – a Tool Comparison
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Immersing into JavaScript Frameworks
- Workday Reportedly Prepping to Go Public
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Book Review: Sams Teach Yourself Java in 24 Hours
- OpenOffice.com Lives
- Book Excerpt: Introducing HTML5
- Adobe Sends Flex to the Apache Foundation
- Five Years Waiting for JRE 7: Is It Justified? (Part 1)
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- OpenXava 4.3: Rapid Java Web Development
- The Next Web Architecture
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Is Write Once Run Anywhere Ever Going to Be a Reality?
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- i-Technology Predictions for 2007: Where's It All Headed?



















