site speed

Announcing the Strangeloop Site Optimizer

Announcing the Strangeloop Site Optimizer. Have a cigar!I didn’t start this blog to shill product, but it would be kind of weird if I didn’t at least mention that my company, Strangeloop, recently released Site Optimizer, a new family of site acceleration products and services that is already yielding pretty incredible results for companies like O’Reilly and Sodexo. Consider this my “proud papa” birth announcement. Your cigar is in the mail.

If you’re curious to learn more about Site Optimizer, David Hamilton at Web Host Industry Review was kind enough to interview me about it last week.

Friday Four: Page load races, Future Day, and surprising data on how people are using the iPad

Which Loads Faster
I’ve been having a lot of fun with this little tool, which pits sites against each other in head-to-head speed trials. See who’s faster – Google versus Bing, Amazon versus Shopzilla, TMZ versus OMG! – or try your own matchup. I asked its creator, Ryan Witt, how Which Loads Faster works, and he told me that the “pages are loading in real time in your browser and I’m measuring the time it takes using javascript.” Pretty nifty.

“Future Day” Mistake Spreads Like Wildfire Online
Earlier this week, when Total Film magazine mistakenly posted that July 5, 2010 was the future date that Marty and the Doc travel to at the start of the second Back to the Future movie, it highlighted how quickly information now travels online. Total Film corrected their mistake by posting a Photoshopped image of the time machine with the wrong date in it, as a joke, but the joke image got picked up as real news and became a trending topic on Twitter. It goes to show two things. One: People seem willing to believe anything they see. Two: Once incorrect information starts spreading, it’s impossible to control it. [via Human 2.0]

Whatever Happened to Voice Recognition?
Speaking of back to the future, remember voice recognition? Back in the ’80s and early ’90s, it was going to be the wave of the computing future. This post by developer and human factors thinker Jeff Atwood explains why voice recognition will probably never pan out.

An In-Depth Look at How People Are Using the iPad
And back to the present, Mashable just posted an iPad usage survey, which revealed a few surprises. For instance, while the iPad was never touted as a portable gaming device, more than one-third of respondents said that after owning an iPad, they would not buy a separate gaming device: “The size of the device and its accelerometer really make for an immersive gaming experience.” That said, more than half of all current and prospective iPad owners owners said they see it as a non-essential luxury item, not a necessity.

Waterfalls 101: How to understand your website’s performance via waterfall chart

[This post later served as a jumping-off point for a 30-minute webinar: Waterfalls 101: How to read a waterfall chart]

I keep running into executives who are being presented waterfall charts and don’t know how to interpret them. Today I thought it would be a good idea to take a bird’s eye view of a typical performance waterfall – pre- and post-acceleration – that you can take away for your own reference or pass along to anyone you think could benefit from having this information.

(If you’re technical, live and breath waterfalls, and never plan to speak with an executive, stop reading now. :) )

Waterfall charts are diagrams that let you visualize data that is generated cumulatively and sequentially across a process. In the case of performance waterfalls, they let you see the series of actions that occur between a user and your server in order for that user to view a specific page of your site.

Here’s what a waterfall looks like for a site* that has not been optimized in any way:

Waterfall chart: Before web performance optimization

To the uninitiated, this is a mess. For now, it’s sufficient to understand that each of the rows represents a different object – including text, image, Javascript files, etc. – that the page contains. Depending on whom you ask, the average web page contains anywhere between 44 and 75 objects (including text, images, and Javascript). Each of these objects makes its own roundtrip between the server and the browser.

Now let’s go in for a closer look:

Close-up look at waterfall

Each of the colored bars represents a different activity that happens as the object is delivered to the user’s browser:

Dark green = DNS lookup

This is when the browser looks up the domain of the object being requested by the browser. Think of this as asking the “phone book” of the internet to find someone’s phone number using their first and last name. You can’t do much about the dark greens bars and they should not be a problem on most sites.

Orange = TCP connection

Also called the “three-way handshake,” this is the process by which both the user and the server send and receive acknowledgment that a connection has been made and data can begin to be transferred. It’s sort of like how CB radio users start a conversation:

“Breaker 1-9. This is Bluebeard. Anyone out there read me? Over.”
“I read you, Bluebeard. This is Jolly Roger. Over.”
“Okay, let’s QSO.”

(Important note: Everything I know about CB slang I learned from watching The Dukes of Hazzard.)

It’s not easy to speed up TCP connection, but you can control how many times the TCP connection takes place. Too many connections will slow down site performance.

Bright green = Time to first byte

This is the window of time between asking the server for content and starting to get the first bit back. Continuing our CB radio analogy, think of this as the interval between asking a question to a friend over a radio and waiting to hear the beginning of their response.

The user’s internet connection is a factor here, but there are other things that can slow things down: the amount of time it takes your servers to “think” of what content to send, and the distance between your servers and the user.

Blue = Content download

This is the time it takes for every piece of content to be sent from the server to the browser. Think of this as the time it takes from the first sound you hear on the radio to the end of the speech from your mother after she broke in on your chat and told you to get off that walky-talky and come down for dinner.

You can speed up content download by making the total amount of stuff you need to send smaller. More on that in a minute.

For now, let’s go back to our mondo chart:

Waterfall chart: Before web performance optimization

I want you to observe four things:

  1. The number of orange bars
  2. The number of bright green bars
  3. And the length of the bright green bars
  4. The number of blue bars

These four things show where this site performs poorly. Let’s break it down:

1. Too many orange bars

You can address this problem by having your developers use something called “keep-alives” to reduce the number of TCP connections. (I’m not going to go into keep-alives here, because this post is long enough already. If you want more info, feel free to email me or ask in the comments.)

2. Too many bright green bars

Remember the 75 page objects I mentioned earlier, each one making its own roundtrip? That’s what’s causing all the green and blue bars. This problem can be fixed by implementing performance best practices, such as those identified by YSlow and Google. Among other things, these best practices include consolidating page objects into fewer bundles.

3. Bright green bars are too big

You can fix this problem with a CDN, which will bring your content closer to your users. Chances are, you’re already doing this. Hopefully, this post will help show why CDNs – while a great tool in your toolset – don’t address all aspects of the performance problem.

4. Too many blue bars

Not only are there too many page objects, each of these objects is too large. The average web page is between 320 and 420 kb. In other words, too big. This problem can be partially fixed through implementing the performance best practices suggested above, and partially fixed using something called compression. (Again, contact me if you want to know more about compression.)

So how does a waterfall chart look for a site that has been optimized to follow some of the best practices?** Take a look at these before-and-after charts for the same site:

Waterfall: Before and after web performance optimization

If you take nothing else away from all this…

Remember that when you’re looking at performance reports for your site, you want to see these five things:

  1. As few rows as possible.
  2. As few orange bars as possible.
  3. Bright green bars that are as few and as short as possible.
  4. As little blue as possible.
  5. The “start render” and “document complete” vertical lines to occur as early as possible, and be as close together as possible.

*These charts were done by testing unoptimized and optimized versions of the Velocity 2010 website.
**Site optimization was done using Strangeloop’s cloud-based Site Optimizer service.

Related posts:

UPDATED: Everything you wanted to know about web performance but were afraid to ask

As mentioned when I first posted this popular entry, my plan is to keep this one-stop shop for performance stats up-to-date as new data is released. Here’s a summary of what’s been added:

A user who has to endure an 8-second download delay spends only 1% of her total viewing time looking at the featured promotional space on a landing page. In contrast, a user who receives instantaneous page rendering spends 20% of viewing time within the promotional area. [Source: Jakob Nielsen]

Between 37 to 49% of users who experience performance issues when completing a transaction will either abandon the site or switch to a competitor. Of these, 77% will share their experiences with others. [Source: Sean Power, Metrics 101]

Users have faulty perceptions of time. For example, the average person will perceive the amount of time it takes a page to load as being about 15% slower than the actual load time. And later, in recalling their memory of how long it took for the page to load, they will remember it took about 35% longer than it actually did. [Source: Stoyan Stefanov, Psychology of Performance]

  • A site that loads in 3 seconds experiences 22% fewer page views and a 50% higher bounce rate than a site that loads in 1 second. Impact on conversions: -22%.
  • A site that loads in 5 seconds experiences 35% fewer page views and a 105% higher bounce rate. Impact on conversions: -38%.
  • A site that loads in 10 seconds experiences 46% fewer page views and a 135% higher bounce rate. Impact on conversions: -42%. [Source: Strangeloop]

You can read the post in its entirety here.

Related posts:

VIDEO: Everything you wanted to know about web performance but were afraid to ask, part 2

Yesterday, Network World posted part 1 of our whiteboard session where I talked about the performance problems faced by today’s websites: browser differentiation, web page complexity and size, and user expectations.

In part 2, I talk about the solution landscape, including CDNs and ADCs, and I explain why these don’t address all the opportunities for site optimization:

I also talk about how the Strangeloop Site Optimizer takes advantage of some unique optimization opportunities. I don’t normally use this blog to flog product, but I get a lot of requests to explain how exactly Site Optimizer works. If you’re wondering, this is the chance to find out.

Related posts: