December 11, 2007
Last week Tenni Theurer, manager of Yahoo!’s Exceptional Performance group and my main performance co-hort, returned from her appearance at the CSDN-Dr.Dobbs Software Developer 2.0 Conference in Beijing, China. This was a big conference, perhaps the biggest software conference ever in China. I was psyched when Tenni told me her talk drew a crowd and [...]
December 5, 2007
We’re excited to announce the release of YSlow 0.9, Yahoo!’s web page performance analysis tool. There are two big features in this release. By integrating more tightly with Firebug’s Net Panel, YSlow now finds non-DOM components such as Ajax requests and image beacons. And YSlow now crawls frames and iframes and analyzes those resources as [...]
November 26, 2007
I get feedback daily on people using YSlow. The emails are all positive, even the ones that report bugs. The best emails describe how YSlow helped a company make their web pages load faster. It was fun to read this article on The Register today: Virgin America tunes up with YSlow. If anyone else has [...]
November 15, 2007
O’Reilly just announced Velocity, their first conference focused on web performance and operations. It’s scheduled for June 23-24, 2008 at the San Francisco Airport Marriott in Burlingame. I’m proud to say that Jesse Robbins and I are co-chairing Velocity. The idea for this conference came after a late night dinner in Seattle with several performance [...]
October 26, 2007
Stoyan Stefanov just published an article entitled Web Site Optimization: 13 Simple Steps. People have commented that Yahoo!’s Performance Rules are geared towards large web sites (like Yahoo!). Stoyan’s article approaches the best practices from a different angle. This tutorial takes a practical, example-based approach to implementing those rules. It’s targeted towards web developers with [...]
October 4, 2007
At Future of Web Apps in London I announced the release of YSlow 0.8. This update includes a few enhancements, but the biggest change is a patch to Firebug’s Net Panel. I discovered that resources (scripts, stylesheets, images) read from the browsers cache (with no HTTP traffic) still show up in Net Panel. This has [...]
September 26, 2007
People ask whether these performance rules apply to Web 2.0 applications. They definitely do! This rule is the first rule that resulted from working with Web 2.0 applications at Yahoo!. One of the cited benefits of Ajax is that it provides instantaneous feedback to the user because it requests information asynchronously from the backend web [...]
July 24, 2007
Yahoo! has released YSlow, their web performance tool, on YDN under an open source license. Steve Souders, Yahoo!’s Chief Performance Yahoo!, made the announcement during his session at OSCon. YSlow measures web page performance based on the best practices evangelized by Yahoo!’s Exceptional Performance team. Since many of these best practices focus on the frontend, [...]
July 23, 2007
Entity tags (ETags) are a mechanism that web servers and browsers use to determine whether the component in the browser’s cache matches the one on the origin server. (An “entity” is another word for what I’ve been calling a “component”: images, scripts, stylesheets, etc.) ETags were added to provide a mechanism for validating entities that [...]
July 23, 2007
It hurts performance to include the same JavaScript file twice in one page. This isn’t as unusual as you might think. A review of the ten top U.S. web sites shows that two of them contain a duplicated script. Two main factors increase the odds of a script being duplicated in a single web page: [...]
July 23, 2007
Redirects are accomplished using the 301 and 302 status codes. Here’s an example of the HTTP headers in a 301 response. HTTP/1.1 301 Moved Permanently Location: http://example.com/newuri Content-Type: text/html The browser automatically takes the user to the URL specified in the Location field. All the information necessary for a redirect is in the headers. The [...]
July 23, 2007
Minification is the practice of removing unnecessary characters from code to reduce its size thereby improving load times. When code is minified all comments are removed, as well as unneeded white space characters (space, newline, and tab). In the case of JavaScript, this improves response time performance because the size of the downloaded file is [...]
July 20, 2007
The Domain Name System (DNS) maps hostnames to IP addresses, just as phonebooks map people’s names to their phone numbers. When you type www.yahoo.com into your browser, a DNS resolver contacted by the browser returns that server’s IP address. DNS has a cost. It typically takes 20-120 milliseconds for DNS to lookup the IP address [...]
July 18, 2007
Many of these performance rules deal with how external components are managed. However, before these considerations arise you should ask a more basic question: Should JavaScript and CSS be contained in external files, or inlined in the page itself? Using external files in the real world generally produces faster pages because the JavaScript and CSS [...]
July 16, 2007
CSS expressions are a powerful (and dangerous) way to set CSS properties dynamically. They’re supported in Internet Explorer, starting with version 5. As an example, the background color could be set to alternate every hour using CSS expressions. background-color: expression( (new Date()).getHours()%2 ? “#B8D4FF” : “#F08A00″ ); As shown here, the expression method accepts a [...]