Browsers and Performance
Saturday, November 22nd, 2008At Zenbe we try to keep tabs on what people are saying about us in the Twitterverse, the Blogosphere, Get Satisfaction and of course our own user forums.
One topic that’s come up recently is the performance of Zenbe webmail. We are currently experiencing a few issues with the performance of loading email headers for users who have a lot of messages in their Inbox or a particular tag, particularly when in Conversation View mode.
The good news for those who are experiencing this is that we’re working really hard on fixing it. Two of our engineers – Aaron and Aram – are actively working on optimizing all SQL queries related to message retrieval as well as upgrading and tuning our Apache Solr search engines so that we can offload more queries to them.
We hope to have some nice speed performance improvements out to you within about a week.
The factors that affect web site performance are complex and varied, but I’d like to mention a few things we either currently do or are investigating to make Zenbe as fast as possible.
Our site relies on a lot of Javascript libraries we wrote in order to provide a high level of interactivity, as well as fair amount of images and CSS to provide a nice UI. We’ve worked pretty hard on packaging and serving this content in the most efficient manner possible and implement many of the excellent guidelines published by the Yahoo performance team. We compress most of our content, combine our script, CSS files and many images to reduce the number of requests your browser makes, and add headers that prevent your browser from asking for static content (i.e. an image) unless a newer version of that content is available.
A few of our developers – Jade, Jeremy and Will – are working on using the HTML5 <canvas> element to draw many of our UI elements using native browser capabilities, which will allow us to get rid of a lot of the images that you currently download when using Zenbe.
Right now the majority of our content is served from our primary data center in Texas. We monitor our ping times to the content servers from various locations around the world via Pingdom. Our average ping time across all servers is between 50 and 70 milliseconds. The closer you are to our data center, the faster you get your data. So if you happen to live in Texas you’re very lucky. For everyone else we’re looking at some solutions to bring downloaded content like images and Javascript files closer to you via a content delivery network and are particularly interested in Amazon’s new Cloudfront service.
Finally, I want to note an important point: not all browsers are created equal. Zenbe heavily leverages AJAX technology, which – in a nutshell – means that in most cases we request raw data from our servers, and then use Javascript and CSS to render that data into the UI elements in your browser.
Different browsers use different Javascript engines, which has a major impact on how fast sites like Zenbe can render data in a particular browser. Our preferred supported browsers are Apple’s Safari (available for both the Mac and PC) and Mozilla Firefox. We’re really excited about the new Google Chrome browser and find that Zenbe performs incredibly fast in it. We’ll be adding it to our officially supported browser list soon.
IE7, unfortunately, performs much worse. According to Javascript pro John Resig’s benchmarks, it performs about 10x slower than the fastest browser (Google Chrome) when running the SunSpider testing suite. In fairness, there are some complexities related to time resolution accuracy when measuring Javascript performance, but nonetheless we actively try to measure our Javascript performance using Robert’s JSLitmus Javascript benchmarking toolkit that he built during a recent IE7 performance overhaul.
We still think we can do better in IE7 and will continue trying to squeeze performance out of it. But if you are using IE7 and have the opportunity to install Safari, Firefox, or Google Chrome, then definitely do so. I think you’ll be pleasantly surprised, not just at how much faster Zenbe feels, but at how much faster web browsing in general is.