I am big fan of Yahoo Developer Network and one of the sections in the site is the “Exceptional Performance” headed until recently by Steve Souders – performance Guru previously at Yahoo and now at Google. Recently Yahoo has come out with a new firefox add-on called YSlow. YSlow is a tool that follows the 13 Rules for High Performance Web Sites as listed on the Yahoo Exception Performance site and analyzes those 13 aspects on your site, giving you a grade (A-F) for each of the rules, and an overall grade for the site. The tool is free to download and installed as an add-on into Firefox firebug plugin.
The 13 benchmarks are listed here
- Make fewer HTTP requests
- Use a CDN
- Add an Expires header
- Gzip components
- Put CSS at the top
- Move scripts to the bottom
- Avoid CSS expressions
- Make JS and CSS external
- Reduce DNS lookups
- Minify JS
- Avoid redirects
- Remove duplicate scripts
- Configure ETags
If you are new to YSlow or the 13 rules for high performance, I strongly recommend reading the links above first before following the article. My mission after reading the articles and installing the plugin was to figure out what does these performance rules mean from a web mapping application perspective.
Continuing on the same lines, here is a quick test : Using ArcGIS Server Java Manager created a simple web mapping application which consumes an ArcGIS Internet Service (San Francisco, non-cached, pooled) accepted all the defaults and deployed the web application.
Here is a screnshot of the actual viewer manager created as seen from a firefox browser. As you see there are no task configured, just bare bone web mapping application created using a standard template.
Now here is a screenshot of YSlow analysis for the out-of-the-box application :
The YSlow grades the application F. Looks bad right, not really. Getting curious I just checked YSlow grades for well known websites and most of them had bad grades as well.
What does this mean? Is the YSlow performance rules unrealistic or is the application bad. I think its very important to understand why the YSlow tool graded our application badly.
Before we start its important to remember that performance for the end users is not just speed or minimizing numbers, its about improving the perceived performance of the application.
In my next blog post lets analyze a few rules to see where we as web developers or front end engineers can contribute to improve the performance of the web mapping application.