Oracle JRockit Mission Control 3.0.3 available!

The next version of JRockit Mission Control just went live! Feature-wise it is only a minor upgrade, I will go into detail about the most exciting one in a bit, but there are some other changes to this release that are quite profound.

The, in my humble opinion, greatest change is that all JRockit Mission Control features are available by default. There is no need to dabble with licenses. Everything is free to use for evaluation, which among other things means that you can now try out the latency analyzer properly.

JRockit Mission Control has also been relocated to a new homepage at OTN, located at http://www.oracle.com/technology/products/jrockit/missioncontrol/index.html. The next few days a lot of new JRockit Mission Control related material will be posted there.

The update site has moved as well, and can now be found at http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/eclipse-3.3/jrmc/.

As you will undoubtedly notice, everything has also been re-branded.

Now, the cool new feature is actually a JRockit JVM side upgrade, that will be automatically picked up by the JRockit Mission Control client. It is now possible to do very cheap memory allocation profiling using the JRockit Latency Analyzer.

There is a new type of latency events available in the latency recordings. They are triggered whenever the JRockit JVM needs to acquire a new Thread Local Area or whenever the JRockit JVM needs to allocate a new large object. These events provides a good approximation to what is causing the most pressure on the memory system. This means that it is quite easy to find out where to start optimizing allocation behaviour using JRMC LAT.

Here is an example:

  1. First select the JVM you wish to start a JRA recording on.
    start_recording
  2. In the JRA recording wizard, ensure that you start a JRA recording with latency information in it.
    You can for example use the Latency Recording Template.
    latency_wizard
  3. Then open the Latency Log tab and open a histogram over the events.
    Make the histogram over the Object Allocation – Class Name property by selecting it in the second combo box.
    histogram 
    Note: since the allocation events aren’t recognized yet as being from the standard producer, you may need to enable them in the event palette to the left.As you can see, most of the pressure on the memory system seems to be from the allocations of Strings. This is not uncommon. Together with arrays of primitive types, Strings are quite commonly high ranking here.
  4. Now right click on the String row in the table, and set the operative set to the events corresponding to that row.
    The selected event property will unfortunately be reset, which will cause the histogram to be reset as well, but never mind that.
  5. Move over to the Latency Traces view and check that you only want to see the events in the operative set.
    traces 
    You can now clearly see exactly where you need to reduce the amount of String allocation to reduce the pressure on the memory system.

Reducing the pressure on the memory system leads to less frequent garbage collections and thus a more responsive system.

For more information on the JRockit JVM R27.6 release, please have a look at the release notes.

Oh dear, I seem to be a hacker!

So, here I went along and thought I had something unique going on in my life. A unique blend of musical aptitude, computers and even martial arts.

Then I came across this FAQ by Eric Raymond and it even seems there is a name for it – “hacker”. Now, in my mind the word “hacker” has always been associated with criminal activity involving computers and/or someone who always favours shortcuts over well-designed solutions when developing software.

If a hacker is generally defined as decribed in Eric Raymond’s FAQ, I’ll just go ahead and accept my loss of uniqueness and instead take great pride in being a hacker. 🙂

Scrum & DSDM

Just stumbled across this article on the common ground and differences between DSDM and Scrum:

http://www.dsdm.org/timebox/issue32/DSDM&Scrum.asp

I’ve always held DSDM close at heart, as DSDM was my very first contact with the ideas that sparked the agile revolution.

As most seasoned Agile practitioners, I tend to practice neither DSMD nor Scrum but rather whatever blend of the different Agile methods or frameworks that happens to suit the current situation. Still, DSDM contains a lot of good material and white papers for using the approach in less common situations, as well as good tips on how to manage risks when using agile approaches in difficult situations, such a geographically disparate teams.

Recommended reading! 🙂

EclipseCon 2008

I’ll be in Santa Clara for EclipseCon 2008 in March. My talk will be about ways to use JRockit and Eclipse together and the advantages of doing so.

I’ll most likely be in Santa Clara March 17th-23rd.