3

I've just enabled the SPDY module on nginx, as explanained on the SPDY module site. I expected a speed enhacement on my site, but I haven't noticed it.

Using Firefox 25 and Firebug, I tried to take a look at the site loading to try to find out what's going on. This is what I got:

Without SPDY:

Page load without SPDY

With SPDY:

Page load with SPDY

The total page load is the same, but without SPDY all the resources seem to be requested and served sequentially, and with SPDY all at the same time.

But with SPDY there's that emptiness just there, where the navigator seems to be doing nothing. I got similar results on another SPDY-enabled websites.

The Wikipedia says that

The goal of SPDY is to reduce web page load time. This is achieved by prioritizing and multiplexing the transfer of web page subresources so that only one connection per client is required

What happens? Is that normal? If the transfer is multiplexed shouldn't the resources be fetched faster?

Please notice that on subsequent requests the pageload was way better for SPDY, but there's still that emptiness doing apparently nothing.

I've deleted the cache between every request, jsut in case.

1 Answer 1

1

Yes, this is normal and working as it should.

In the first screenshot, the grey bar segment corresponds to the receiving time, and the olive segment corresponds to the connecting time (as can be confirmed here and here).

In the second screenshot, both of these segments are missing (i.e., the receiving and connecting time are null). This is because SPDY fetched all the resources and opened up multiple connections to the client browser in just one step. Hence the longer purple segment, which is the waiting stage, for the first resource as the sever module does its work.

The onload time, which you're likely referring to as the "total page load", does not include the receiving time, as you can see by adding up the times next to each bar in the first screenshot (totaling to much more than 2.5 seconds). The onload time totals the colored segments (in this case: olive, purple, and green, which equals connecting, waiting, and events respectively). This amounts to roughly the same time with and without SPDY initially because the content of the page is the same.

However as you stated, subsequent requests for the page will be much faster because the resources will have been cached in memory (thus reducing the waiting stage), so the onload time will be less and the page will appear noticeably faster.

Update:

Due to the differences in monitor colors, the "grey" bar may correspond to blocking; the user would be able to match the colors by hovering over each bar with a colored legend. blocking also makes sense because without SPDY, the connections with the client browser would be serial and not in parallel as with it - hence those would absent with SPDY.

The "emptiness doing apparently nothing" is due to the browser loading resources like JavaScript (e.g., js_WrioUyd64_) which takes time for it to process. This would not be improved by SPDY because that is client-side, not server-side.

3
  • Thank you by your response. Unfortunately, the grey segment is actually not grey, but beige. It corresponds to blocking time, as stated on the docs you linked to. By your explanation, I understand that SPDY performed faster because everything was already cached on memory in the side of the server. But that does not explain why the empty segments. Dec 16, 2013 at 12:34
  • It's hard to tell what color it is from the screenshot due to differences in monitors (and it's in Spanish). The colors would match the legend if you hover over it. I do not see "beige" in any of the docs however. If it is indeed blocking, that would make sense too because there's only one connection being opened serially instead of in parallel as with SPDY. The "empty segment" is due to the browser loading different parts of the page, for example JavaScript (e.g., js_WrioUyd64_), which takes time to process. This does not have any bearing on whether SPDY is used or not.
    – dan
    Dec 16, 2013 at 19:00
  • It is definitely blocking, because the order of the colors are always beige-blue-olive-red-purple-grey. Maybe you should update your original answer to avoid confussions. I wonder if Firefox is optimized enough for SPDY to gather resources as fast as possible. Thank you! Dec 18, 2013 at 14:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.