Presentation on theme: "CS193H: High Performance Web Sites Lecture 2: The Importance of Frontend Performance Steve Souders Google"— Presentation transcript:
CS193H: High Performance Web Sites Lecture 2: The Importance of Frontend Performance Steve Souders Google firstname.lastname@example.org
17% 83% iGoogle, primed cache The Importance of Frontend Performance 9%91% iGoogle, empty cache Frontend vs. Backend
Definitions Backend Time from when the user makes the request to when the last byte of the HTML document arrives. Includes the time for the initial request to go up, the web server to stitch together the HTML, and for the response to come back. Frontend Shorthand for everything after the HTML document arrives. In reality, includes backend time (primarily reading static files) and network time, as well as true frontend activities such as parsing HTML, CSS, and JS, and executing JS.
Empty CachePrimed Cache www.aol.com97% www.ebay.com95%81% www.facebook.com95%81% www.google.com/search47%0% search.live.com/results67%0% www.msn.com98%94% www.myspace.com98% en.wikipedia.org/wiki94%91% www.yahoo.com97%96% www.youtube.com98%97% Time Spent on the Frontend
The Performance Golden Rule 80-90% of the end-user response time is spent on the frontend. Start there. greater potential for improvement simpler proven to work
Memory Cache Why is "primed cache same session" different from "primed cache different session"? Browsers store resources in memory so they don't need to read them from disk. What determines whether a resource is held in memory cache? I don't know. That'd be a good research project.
Disk Cache Two considerations with disk cache Is the resource fresh (vs. expired)? If it's expired, is it valid (vs. updated)? If a resource is fresh, no HTTP request is made – it's just read from disk. If a resource is expired, a Conditional GET request is made. If the resource is valid, it's read from disk and the Conditional GET response is empty. If the resource has been updated, the Conditional GET response contains the updated version.
Packet Sniffers measure HTTP requests HTTPWatch http://www.httpwatch.com/ IE and Firefox, Windows only contact me if you want a free Pro version Firebug net panel less accurate timings (includes blocking time) others: AOL Pagetest (web-based), Fiddler (Windows), Wireshark (low-level), IBM Page Detailer (Windows)
Steve Souders, July 2007 web performance analysis tool add-on to Firebug (extension to an extension) Open Source (free), not open repository http://developer.yahoo.com/yslow/
Homework Go to http://groups.google.com/group/cs193h- hpws and "Apply for group membership" (if you haven't already)http://groups.google.com/group/cs193h- hpws Contact me if you want a free Pro version of HTTPWatch (Windows only) Read HPWS, Chapter B: HTTP Overview Install Firebug, YSlow, HTTPWatch (free version, if Windows)
Questions What's the white space in the HTTP profiles? What's empty vs. primed cached? Why does the browser cache resources? Why is the HTML document typically not cached? Give three reasons why focusing on the frontend is the place to start? Why are packet sniffers not good for measuring page load time?