Thursday, December 1, 2005

Performance profiler - now for the Mac!

WARNING: This blog entry was imported from my old blog on (which used different blogging software), so formatting and links may not be correct.

Milestone 11
of the NetBeans Performance Profiler
was released today. It's mostly a bug fix release, but it sports one big new feature: Support for Apple OSX!
This is a big deal. The NetBeans Profiler is based on
JFluid, a new
approach to performance profiling. Rather than using the standard JVM performance interface, it used
a special modification of the VM to do its profiling more accurately. Because of this, you had to download
special VMs to run your application - and of course, those modified VMs did not include OSX (where the VM
is provided by Apple rather than Sun).

The JFluid hotspot modifications have been integrated into the JDK. As of JDK 5 update 4 (or thereabouts)
you can use a standard JDK with the profiler and everything works beautifully. And I guess Apple's recent
update to JDK 5 must have synced up to the codebase which includes the JFluid modifications, since the profiler now works.

The "What's New" document describes this feature as experimental - so of course I had to try it! It seemed to work well on my test case. I created a sample project (the Anagram sample that ships with NetBeans), then invoked the Profiler. After calibrating the timers I needed to restart profiling. From there everything went smoothly; I hit the GUI button a bunch of times, then clicked on the Take Snapshot button in the profiling panel. Voila! The result screen pops up letting me drill into both the hotspots and the overall cumulative time view.

Click on the screenshot for full size. And check out the Profiler Screenshots off the profiler main page; as you can see there are various telemetry views and other goodies there.

Very promising. If you're a Mac Java user, be sure to try it out and provide feedback and bug reports to the profiler team such that this feature is stabilized as quickly as possible!


  1. These are my clumsy efforts with Creator.
    Hope to polish it up with the new production
    version of Creator. Do you think AJAX could
    benefit this simple UI.?

  2. Hi Paul,
    since you have lots of background graphics, the foreground text will usually look really great if you place it on a semi-transparent background. In other words, under the text, place a translucent image (let's say 50% opaque). If the color is light, use a black rectangle with 0.5 opacity, or vice versa. You should be able to do this with a graphic image, placed under the text (make sure it appears earlier in the JSP, or use CSS z-index.) This should work great on mozilla. I think with the new components in creator 2 it will also work on IE; at least many of the components have various IE PNG support hacks. I hope graphic image is one of them, not just the gradient theme stuff.