The BileBlog's Journal
 
[Most Recent Entries] [Calendar View] [Friends View]

Friday, May 19th, 2006

    Time Event
    5:01p
    JavaOne EJB 3.0 optimisation...right?
    The current talk I'm in is (allegedly) about EJB 3.0 performance and optimisation. The first ten minutes are, to put it mildly, utterly and thoroughly pointless. What on earth is the motivation to discuss the deployment/initialisation performance? There's next to no magic involved, a bean is created, stuff is injected into it (looked up from JNDI by the container for you if it's a naive implementation, or more optimised, either way, pretty cheap). Once that's done, it's done, init is complete, nothing to see here.

    Sadly, the next bit doesn't get much better either. We have a discussion of local vs remote session beans. This might come to a shock, but it turns out that....remote beans are slower than local ones! Remote beans should be coarsly grained! Local beans are better! Waggle waggle!

    Having made the astounding leap of faith of preferring local beans over remote ones, you should next, apparently, look up resources once then cache them. Will the craziness never end? A revolution in enterprise development is surely afoot.

    There were some surprising results though, to be fair. For example, the cost of one interceptor is negligible, but having multiple interceptors is far more expensive. I suspect this is due to a not insignificant amount of incompetence within the implementations that were tested for this talk.

    The next bit about transactions, while horrifically sleep inducing, did manage to sneak in a useful tip or two. Thankfully, these were buried in amongst a bunch of other useless guff, so they're very easy to miss.

    There is a hint of usefulness wafting in the air though, with the preview of entity bean optimisations! Alas, this hope is quickly squished as it turns out that this bit is nothing more than a cascade type discussion that proves to be a red herring, as well as a explanation of the difference between eager and lazy fetchtypes (how that could require an explanation is beyond me.)

    The most hilarious aspect of the whole talk though is the graphs. For each of the points raised, the poor presenters decided to 'prove' their claim with a graph showing the relative performance of the issue at hand. The hilarity however shows up when half the graphs show two tall bars, showing that the point at hand is in fact nonsense, and actually has NO impact on performance. I'm fairly perplexed this approach, given the title of the talk. What exactly is the point of claiming that something is slow, then showing proof it isn't? Is the talk just horribly mistitled, and should have been called 'things you might think are slow if you don't know much about stuff but actually aren't slow and are in fact irrelevant when working with ejb 3.0 beans'.

    The final section shows some real world performance data for various operations, comparing two appservers (referred to as appserver A and appserver B), comparing results for EJB 2.1 and EJB 3.0. I can only imagine that the two servers are Sun's and JBoss' (since one appserver was consistently slower across every single test, no marks for guessing which one).

    << Previous Day 2006/05/19
    [Calendar]
    Next Day >>

The BileBlog   About Sviesta Ciba