Wicket Interface Speed-Up

August 15th, 2008 by Stefan Fußenegger  |  Published in Wicket

After reading Matt Raible’s thoughts on [OSCON 2008] Even Faster Web Sites by Steve Souders I decided to look into the topic myself. I knew that one bigger project built with Wicket was reported to be slow. However, I always made the mistake to look into server-side performance as client-side performance never was an obvious problem – well, estimating client-side performance on my Quadcore/4G RAM/Ubuntu workstation with broadband connection admittedly wasn’t very representative ;)

According to Souders, “80-90% of the end-user response time is spent on the frontend”. This obviously makes potential performance improvements of (quite insane) 20% on the server a drop in a bucket. Therefore, I decided to make interface performance tuning a top priority in my work queue and looked thoroughly into it.

I used Yahoo’s YSlow for Firebug to get a first impression on the performance of our biggest Wicket-based project. The results were as bad as suspected: YSlow honored my carelessness in interface response time with less than 50 points or grade F (even without ads and Google Analytics) on most of the pages. Without even knowing about them, I taunted 3 of 13 Rules that are encapsulated in the YSlow plugin:

  • Make fewer HTTP requests
  • Add an Expires header
  • Gzip components

YSlow performance evaluation

In the upcoming series “Wicket Interface Speed-Up”, I’ll explain how I tuned Wicket, made peace with YSlow and finally went for at least a B on most of my pages (without ads and google-analytics). Well, not only a B but also considerably faster page loading and rendering.

Wicket Interface Speeding:

  1. Modifying Expires and Cache-Control Headers
  2. Caching Resources Forever
  3. Merging Resources for Fewer HTTP Requests

UPDATE: There is an ongoing discussion on my “Wicket Interface Speed-Up” on Wicket’s mailing list.

Leave a Response