One of the insidious performance quandaries of programming in Java is that developers can easily over-commit machine resources by using objects without fully knowing the details of their functions. Performance bottlenecks in your Java programs can also be fuelled by other factors, such as the differences among Java virtual machines (JVMs), just-in-time compilers, and occasional hiccups in the Garbage Collection logic of the language.
The complexity of this scenario makes these performance problems difficult to identify and fix by simply looking at the code.
Fixing these performance problems without a proper tool can become expensive for your company and frustrating for your development team.
A much-needed help for developers comes from numerous debugging products for Java, including the Intel-only Vtune, or multiple-platform products such as OptimizeIt from Intuitive Systems, DevPartner for Java from NuMega, and Visual Quantify from Rational Software.
A recent release from KL Group, JProbe Suite 2.0, challenges these competing products. JProbe promises accurate analysis of your application's performance, support for both the Microsoft Windows and Sun Solaris platforms, fluency with different Java Development Kits, and automated integration with Symantec Visual Cafe 3.
I found JProbe 2.0 easy to use and effective. Its specialised components surround your code with a mesh that works like a sieve for performance bottlenecks. Although I missed the capability to directly modify the source code and to monitor interactions between different applications, JProbe 2.0 is a remarkable tool that you should consider for keeping your development resources efficient and motivated.
Similar to the previous release, JProbe 2.0 works on a JVM that the KL Group has optimised, with the blessing of the Java Software division, to capture with greater accuracy the behaviour of an application and shape its "profile". Although profiling is possible using standard JVMs, the KL Group's JVM provides significant improvements, such as timing accuracy to the nanosecond and precise allocation of resource usage to each object and thread.
Furthermore, if the source code is available, the JProbe GUI can charge each method or line of code in your program with its share of memory or CPU usage.
The profiling features of JProbe make evident the cost in machine resources of each line of code, and thus help reduce the cost of testing and maintaining Java applications.
Thanks to the new features of JProbe 2.0, you can debug applications written either for Java Development Kit (JDK) 1.1 or JDK 1.2, and use the same set of tools for applications written for Windows or Solaris. The Professional Edition provides the further advantage of remotely monitoring your applications in the production environment, where it counts most, because you can capture those elusive malfunctions that were not evident while testing on the developer's workbench.
In addition to the Profiler, which monitors memory and CPU usage, the JProbe Suite includes Coverage, a tool to discover untested sections of your application, and Threadalyzer, your magnifying glass to spot conditions that can cause your application to come to a screeching halt.
After an easy installation, I began exploring the inner works of my Java applications. My first choice was the Profiler. I started the component, chose the application to monitor, and then selected the main class file of my program. At this point, I had the option to set execution parameters for the test or to choose between JDKs. I made no changes and started the test.
The first graph from Profiler was a chart of the memory usage by application. I found this interesting, because it showed the Garbage Collection cycles, but I saw no performance problems, so I moved to the Call Graph screen.
The Call Graph window shows each method used in the program with its respective resource-usage count. You can choose different metrics for resource usage and have each Java method colour-coded for an immediate feeling of a problem spot. One of the methods, coloured bright red, indicated excessive resource usage; I pointed at this element on the screen and in two clicks of the mouse reached the line of source code associated with that method.
In only a couple of minutes, I had put my finger on the line of code that needed attention.
This capability to quickly identify the weak spots in a Java application is probably the best feature of JProbe, because it shrinks the application's testing time to a fraction of what it might have been and provides a healthy reduction in programmer frustration and application development costs.
If the development budget of your Java software has a tendency to fly high and users demand faster response time, don't blame it on your development team or the language. Try adopting JProbe Suite 2.0, and take much of the guesswork out of your testing process.
The Bottom Line
JProbe Suite 2.0
Summary: The JProbe Suite is an attractive debugging product for companies that want to make their Java applications run smoothly. The suite offers a programmer-specific edition, designed for the developer's workbench, and a Professional Edition, to detect post-deployment malfunctions. JProbe will not help, as competing products do, to monitor applications in other languages or specific CORBA or Distributed Component Object Model problems. However, JProbe's support for multiple platforms and Java Development Kits and its integration with Symantec Visual Cafe make JProbe 2.0 an appealing addition to your development environment.
Business Case: Over three years, the Professional Edition of JProbe 2.0 will cost less than $1500 per year for each development seat, a cost that can be easily regained with the increased reliability of your Java applications.
Pros: Accurate, fast, easy debugging of performance problems for Java apps; remote diagnosis of live applications; just one tool for Windows and Solaris platforms.
Cons: Each component of JProbe requires a separate run for the same application; does not monitor problems caused by interaction among applicationsCost: $1839 for JProbe Suite Developer Edition; $3769 for JProbe Suite Professional Edition.
Platforms: Windows 95, Windows 98, Windows NT 4.0, UltraSparc Solaris 2.6/2.7.
Distributed by Information Technology ConsultantsTel (02) 9362 0222