Community: Java Tools Archives
JProfiler mini-review
Posted by simongbrown on February 25, 2005 at 03:38 AM | Permalink
| Comments (4)
I first came across JProfiler last year, when Sam and I were looking for a Java profiling tool that would run on Mac OS X. Surprisingly, this is harder than you'd imagine! Sam downloaded JProfiler, took it for a test drive and was impressed so much that we even talked about it in our J2EE on Mac OS X presentation. I've just revisited JProfiler, so thought that I would write a mini-review.
Core features
There are several profiling tools available on the market, such as JProbe and Optimizeit, and to be fair, they all kind of do the same thing. Okay, that's a massive over simplication of a very complex technology space, but the core features that most end-users are intested in are the same - thread monitoring, deadlock detection and memory/class instance monitoring. Here are a couple of screenshots of these key features from JProfiler running on Mac OS X.
Ease of use
One of the things that really strikes me about JProfiler is that it's so easy to use. The main window is simple and intuitive, allowing you to quickly navigate between the different views on offer. Filters are also very straightforward and provide a way to focus on a specific set of information.
Integration
JProfiler integrates with most of the popular application servers and, through the integration wizard, profiling a J2EE application is very straightforward.
After downloading and installing JProfiler, I had it integrated and profiling applications on Resin 2.x (Mac OS X), Tomcat 5.x (Windows) and Oracle 10g application server (Windows). All of this took about 20 minutes, which is a great testament to it's ease of use.
Summary
Although I've only been evaluating JProfiler for a short amount of time, I really do like it. For me, the real plus points are as follows.
I think it's fantastic that there are now many lower cost alternatives to the products available from the major players in the marketplace. JProfiler has been added to the list of products I recommend, along with IntelliJ IDEA and Gentleware Poseidon for UML. As they all prove, innovation and a high quality development environment needn't cost the earth.
TagUnit and code coverage with Clover
Posted by simongbrown on March 24, 2004 at 01:25 PM | Permalink
| Comments (0)
I've been using Clover for a few months now, but only in the context of my standalone JUnit tests and mainly from within IntelliJ IDEA. Having played with the Clover/Ant integration over the past few days, as with the IDEA integration, I can safely say that getting coverage reports for your unit tests is remarkably easy. Although I've known that it was possible, I've never tried running the instrumented code (that Clover generates) inside a J2EE container. So, to satisfy my curiosity, after a quick bit of Ant hacking the instrumented code was running inside Tomcat and updating the coverage database while my TagUnit tests were running.
It's really simple to do too - just build the instrumented classes into your normal JARs and deploy as usual. The only gotcha is that the coverage data doesn't always get written to disk until the JVM shuts down. Of course, you can fix this with the flushinterval attribute of the <clover-setup> Ant task.
Here's a screenshot of the coverage report for some JSP custom tags that are part of a TagUnit test suite...
...looks like I still have more work to do. ;-)
|