Performance Engineering of Software Systems
Tom Kyte had a
recent blog entry about how too many developers ignore performance until it bites them - "the design should have nothing to do with performance". I got talking about this with one of my colleagues in the UK, John Gouk, who was alternatively scandalised and then all too familiar with the statement.
A similar statement we have seen people use is "we don't want to use any Oracle features because we don't want to be locked in". Hmmm, why pay good money for a performance leading product and then refuse to use the features that allow that performance. Now sometimes you can get away with that because the features are transparent, or relatively so, partitioning or materialised views in the database, single-sign-on or whole page caching in app server.
But sometimes those features can't be transparent and ignoring them can reduce the performance of your application by an order of magnitude, PL/SQL in the database and Java Object caching in the app server for instance.
But what really got us going was the thought that you don't need to think about performance at design time. We both agreed strongly with Tom that performance needs to be designed in. I mentioned to John one of my favorite performance books - "Performance Engineering of Software Systems" by Dr Connie Smith. After the discussion with John I thought I'd have a look to see if I could track down a copy for him.
After twenty-five minutes of searching I concluded that the book was out of print and changing hands at outrageous prices on the net (
up to £240 a copy). Five minutes later John phoned again to say that the book was out of print and could he borrow it!
The basic premise of the book is that performance is not "for free" and must be designed in from the start. The book is technology agnostic and proposes an approach to software engineering that builds performance in from the start. I've always been greatful to my friend Remo Gettini who introduced me to the book, it's been a great acquisition to my software engineering library.
Looking around on the web I was delighted to discover that Connie Smith is currently working on
another book to be released soon.
There is at least one "java head" out here who firmly believes in designing in performance on day one and not leaving it to the system acceptance test before worrying about it.