Java 1.5 Performance on Linux

At work we're currently finishing off on a major rearchitecting effort for our flagship product. We've always run our system on Linux, but with the re-architecture running on Windows has become a real possibility. Last week my colleague Adam tried running the system natively on Windows for the first time and it performed a *lot* faster than on Linux.

This really bums me out, so I've been trying to get it up to par on Linux. So far no success. Running on Windows using Sun's JVM is the fastest in all aspects. JRockIt is a close second.

On Linux, JBoss startup with Sun's JVM takes around 1:30m. Using JRockit or IBM's JVM I get it down to around 30secs. The funny thing is that Sun's JVM, although very slow for JBoss startup, runs our performance test suite the fastest.

I guess it's time for more testing and profiling. Obviously more aspects than just the JVM affect the performance. However, it's still dissappointing that basically "out of the box" it performs significantly faster on Windows. Does anyone else have experience with Java performance on Linux? Traditionally it used to be not very good, but I thought those problems had been addressed in the recent releases.

New Years Resolutions

It's getting pretty far into the year, but I still hadn't really decided on my New Years resolution. It's a tricky business picking a resolution that's really worthwhile. Initially my resolution was going to be that I would be more of a minimalist. After moving around quite a bit and living without a lot of personal items for a while I came to realise: you really miss very few of the things that you think are really dear to you. So I thought being a minimalist is a pretty good idea. It keeps you from accumulating too much useless stuff that you don't need and it makes it easy to move around. But then my roommate said she thought I already was a minimalist and being more minimal would just be weird. So ok, not a good resolution.

Next up: be more of a risk taker. What kind of risks? Well, just general riskiness in all aspects. But that didn't seem like such a great resolution either.

Then: be more flexible, in the sense of muscle flexibility. That's a pretty good one, but it's kind of a small goal for a New Years resolution. I do sports anyway, so putting in more stretching isn't a big deal.

Finally, the solution: make full use of what BC has to offer. My goal is to spend two weekends a month taking advantage of something cool that BC has to offer. I'm thinking mainly the outdoors here. So far I'm doing pretty good, I've been skiing twice in January. :-)

J2EE Configuration Hassles

I decided I'm going to use my new found blogging freedom to rant a little bit. Yesterday I spent almost an entire day debugging a class loading issue with JBoss. In the end it turns out JBoss wasn't even at fault, but I'm still going to rant about ridiculously complicated J2EE configurations. What is up with tons of XML and other configuration files? Why is it so hard to figure out which file does what? Why are there so many files in the first place? Sometimes JBoss really drives me nuts. The same goes for the Spring Framework which we are now using at work. It's pretty cool and all, but I'm not really sure how it's supposed to make things simpler. Having to edit the application context XML file every time I add a new bean or want to inject another dependency is a real PITA. It really doesn't save me any time there. Why can't it just automatically detect that stuff by introspecting my code? Or what about annotations? I guess that's why everybody loves Ruby on Rails -- because it "just works". Anyway, enough ranting for today.

Welcome to my new Homepage

So I've finally gotten on the blogging bandwaggon. Hence my newly designed homepage with a blog! I will try to post blog entries when interesting things come to my mind.

The page is powered by Drupal, an excellent, open-source, PHP-based CMS. I've built a few websites on Drupal and it's never let me down. I highly recommend it to anyone looking for a good CMS. It has many excellent modules and it's very easy to get started and develop your own customizations.