Access Keys:
Skip to content (Access Key - 0)

Alain's Stuff Blog from May 26, 2009

  2009/05/26
Adventures in Java Performance Tuning
Last Changed by Alain Moran, May 26, 2009 20:33
Labels: kodewerk, java, performance, tuning, course, crete

On the surface a training course on the island of Crete might sound like a bit of a jolly, I know for sure that my colleagues were a little suspicious when I announced that I would be taking the Kodewerk Java Performance Tuning course earlier this month. However that couldnt be further from the truth!

There are times when a new piece of information initiates a sea-change in your thinking and the KodeWerk course has for me been one of these events. Forget everything you thought you knew about writing performant code and prepare yourself to be astounded at how much you never knew!

I've met Kirk on a number of occasions before at Conferences and have always enjoyed his presentations. So when the opportunity came up to take his four day course I jumped at the chance. I would have been eager to attend this course wherever it was held, however Crete really does make an excellent location and since it is held off-season, even with the flights it works out cheaper than it would if it were located in central London!

The course begins by taking you through the first principles of performance tuning, teaching you how to define the problem that you are looking for and ways to reproduce the problems that you are seeking to resolve. This introduction gives you a solid base on which to build your knowledge.

The second day covers recognising different behaviours in the JVM and what these behaviours may mean, you are then taught about quick changes that can be made to the JVM & Garbage Collector that can be used to confirm or rule out your suspicions. Sometimes these quick changes may be enough to get your code running quickly, more often though you need to start looking a little deeper.

The third day was the one that induced the sea-change event in my perceptions of writing performant code. One of the examples contains some very obvious changes that can be made however when you make them you find that it makes little or no difference to the speed of execution. I wont give away the reasons for this since that could affect the impact that the example will make on your psyche, but I can say for sure that I will never look at a perfomance issue in quite the same way again.

On this momentous day the usage of various free tools is covered and how they can be used for investigating performance issues in more detail to quickly locate the root cause of your problems. Kirk quite rightly shys away from using the commercially available tools in his course, since combinations of the various free tools are able to give you the same pieces of information without costing you money. Once you understand the basic principles involved you will be able to use the commercial tools just as easily as the free ones if you should wish.


The final day covers aspects of benchmarking and common sources of performance issues including threading/locking & serialisation. The course ends with a 'real world' exercise in performance tuning a web-app, this allows you to put into practice everything you have learned over the preceeding days and brings into focus how you can use the techniques you have learned & apply them to your day-job.

Overall I would highly recommend this course, we most certainly will be sending other employees of ours to the next one in September, the information learned will be invaluable both to ourselves and our clients.

Posted at 26 May @ 6:47 PM by Alain Moran 0 Comments
Toggle Sidebar

Blog

Twitter

  1. @makr nor have I received a response from your subscriptions email as to where it is ):
    Apr 28, 2010 16:36
  2. @make still havent recieved mine tho :(
    Apr 28, 2010 16:35
  3. @s_sk_c Hehe, retaining the same API can result in stagnation of the codebase, so it's a double-edged sword - hurt the developer or progress
    Apr 28, 2010 13:34
  4. three new Paulo Coelho books :D
    Apr 28, 2010 10:54
  5. @s_sk_c Yes, IMO part of the upgrade process should be to uninstall all the 3rd party plugins.
    Apr 28, 2010 09:50
  6. @s_sk_c TY ... I've removed it .. must have been hanging around from an old release of confluence
    Apr 28, 2010 09:41
  7. I almost want to nip out to MaccD's for some straws: www.creativeblythe.com/shrimp.htm
    Apr 27, 2010 20:01
  8. @realrenegadenw kaboom ... you have slashdotted yourself :D ... maybe you should think about using a CDN or cloud based server?
    Apr 27, 2010 16:20
  9. @rodogu LMAO there are plenty of Latinos in AZ already!
    Apr 27, 2010 15:56

Navigate

Archives

  1. 2009
    1. November
    2. July
    3. May
    4. April
  2. 2008
    1. November
    2. October
    3. August

Blogroll

Adaptavist Theme Builder Powered by Atlassian Confluence