My colleague Ran Wahle posted a great article about Firebug add-on for Firefox that provides debugging abilities for the browser. In this post I will introduce an add-on for Firebug called YSlow released by "Yahoo! Developer Network". It’s used to analyze web page’s performance and supplies detailed report on HTML page structure along with number of recommendations on how to improve performance of that page.
Analyze web page performance
Usage of YSlow is very intuitive – after installing, click on it’s icon in status bar starts page analysis. In addition to this manual activation YSlow has a “Autorun” mode, meaning that it will run continuously on each page you get into.
YSlow analyzes a web page by 13 categories and gives a "Performance grade" in each category, in addition there is common performance score based on "weight" of each of those categories, displayed on the top of the window.
Click on arrow beside of any category will display list of all related elements:
Direct click on category will open Yahoo's web site with complete description of the problem and recommendation for handling of a problem on several web platforms. Total performance grade that is under "D" – means your web site needs some improvements…
Click on menu "Stats" menu item displays a pie diagram with analysis of page content(HTTP requests, total size of transferred data, cookies etc.) in two modes:
- Empty cache – shows page’s content analysis on first time page load with no cached items.
- Primed cache – displays a content analysis of the page after it was cached on first load.
Click on "Components" menu item provides complete information about all elements that are being downloaded on selected web page. The displayed data helps to identify components that without expiration date (which i will elaborate in one of my upcoming posts), or not compressed with Gzip data compression, long load time etc.
YSlow is simple to use and free of charge tool that helps to identify performance problem of selected web page, in some cases it can identify issues on a web server level, and suggests some ways to resolve found issues. In my upcoming posts I will describe how to fix some of those problems in ASP.NET applications and IIS servers.