Live data from Hacker News

Loading 180 tiled images with HTTP/2 vs. HTTP/1

http2.golang.org

41–50 of 57 posts

Re: Loading 180 tiled images with HTTP/2 vs. HTTP/1

#41

Akami http2 demo https://http2.akamai.com/demo

Firefox Nightly: HTTPS 1.1: 22 ms latency, 2.83s load time HTTPS 2: 17 ms latency, 2.91s load time Network panel in web developer tools says the second was actually fetched over HTTP/2 so it looks like the demo worked... just not as intended. So HTTP/2 provides no performance benefit in this case. Although I do have pipelining turned on, and unlike the gopher tiles demo this server actually returns "Connection: Keep-…

My results are obvious in favor of HTTP/2

  HTTP/1.1: Latency: 561ms Image load time: 32.64s
  HTTP/2: Latency: 623ms Image load time: 8.77s

Re: Loading 180 tiled images with HTTP/2 vs. HTTP/1

#43
post #40

Earlier quoted context omitted.

Firefox Nightly: HTTPS 1.1: 22 ms latency, 2.83s load time HTTPS 2: 17 ms latency, 2.91s load time Network panel in web developer tools says the second was actually fetched over HTTP/2 so it looks like the demo worked... just not as intended. So HTTP/2 provides no performance benefit in this case. Although I do have pipelining turned on, and unlike the gopher tiles demo this server actually returns "Connection: Keep-…

Chromium: HTTPS 1.1: 140ms latency, 46.47s load time HTTPS 2: 25ms latency, 4.76s load time Definitely a difference on a high latency (Sat) connection, although I'm not aware what the latency amount is based on.

And now you know why Google never tested against pipelining... if they had they'd have to sell it as marginally faster and more sensible, rather than saying it is up to 10x faster.

Since you are on satellite I suggest trying Firefox and turning on aggressive pipelining in about:config. As far as I know I've never had a problem with it in years, and as you can see it brings HTTP/2 speeds to non-SSL and older sites.

Re: Loading 180 tiled images with HTTP/2 vs. HTTP/1

#44
post #30

Earlier quoted context omitted.

I personally still think that JS should still always be pre-processed. When you can spend longer up front optimizing the concatenation, minification, and compression, you can amortize that additional cost across every request and still make important incremental gains. A bit saved is a bit earned.

You can and should still compress and do some amount of minification. Concatenation is debatable on sites with varied page types and JS needs. > A bit saved is a bit earned. So don't send bits the user probably won't need? :P

> So don't send bits the user probably won't need? :P

Surely good for both your bandwidth bills, and the end user experience. The less work your users have to do, the better, especially when it comes to mobile devices.

Re: Loading 180 tiled images with HTTP/2 vs. HTTP/1

#46
post #40

Earlier quoted context omitted.

Chromium: HTTPS 1.1: 140ms latency, 46.47s load time HTTPS 2: 25ms latency, 4.76s load time Definitely a difference on a high latency (Sat) connection, although I'm not aware what the latency amount is based on.

And now you know why Google never tested against pipelining... if they had they'd have to sell it as marginally faster and more sensible, rather than saying it is up to 10x faster. Since you are on satellite I suggest trying Firefox and turning on aggressive pipelining in about:config. As far as I know I've never had a problem with it in years, and as you can see it brings HTTP/2 speeds to non-SSL and older sites.

If aggressive pipelining worked well enough then Mozilla would turn it on by default. The fact they don't is more than enough reason for Google to not test against it.

Re: Loading 180 tiled images with HTTP/2 vs. HTTP/1

#48

Earlier quoted context omitted.

And now you know why Google never tested against pipelining... if they had they'd have to sell it as marginally faster and more sensible, rather than saying it is up to 10x faster. Since you are on satellite I suggest trying Firefox and turning on aggressive pipelining in about:config. As far as I know I've never had a problem with it in years, and as you can see it brings HTTP/2 speeds to non-SSL and older sites.

If aggressive pipelining worked well enough then Mozilla would turn it on by default. The fact they don't is more than enough reason for Google to not test against it.

Mozilla and Google claim there are bad servers out there that pipelining doesn't work with, but yet neither were able to identify those bad servers or reproduce the problems -- probably because the bad software is Superfish and other malware. You don't see problems with iOS Safari using pipelining.

Maybe they should have asked Kaspersky. If you have a clean system pipelining works great.

Re: Loading 180 tiled images with HTTP/2 vs. HTTP/1

#49
post #41

Earlier quoted context omitted.

Firefox Nightly: HTTPS 1.1: 22 ms latency, 2.83s load time HTTPS 2: 17 ms latency, 2.91s load time Network panel in web developer tools says the second was actually fetched over HTTP/2 so it looks like the demo worked... just not as intended. So HTTP/2 provides no performance benefit in this case. Although I do have pipelining turned on, and unlike the gopher tiles demo this server actually returns "Connection: Keep-…

My results are obvious in favor of HTTP/2 HTTP/1.1: Latency: 561ms Image load time: 32.64s HTTP/2: Latency: 623ms Image load time: 8.77s

[deleted]

Re: Loading 180 tiled images with HTTP/2 vs. HTTP/1

#50

Wouldn't a more fair comparison involve domain sharding for the HTTP/1 impl?

Good point, but domain sharding is just a clever optimization (hack) to emulate some of the parallelism provided by HTTP/2 out of the box.

domain sharding gives you parallelism - but it totally bypasses congestion control. At certain levels this works in your favor - because congestion control tends to be overly conservative for HTTP - but at levels of sharding too high it is a disaster (packet loss, heavy buffering, reordering and huge delays to sort it all out.)

Unfortunately the appropriate level of sharding isn't something the person doing the markup can know - because its based on the runtime path characteristics of each page viewer.

Much better to multiplex in one congestion control context (like http/2 does) and then work on making congestion control work better (like the various blah over udp projects such as quic are trying to do). Plus if you do this you can add prioritization, which is a big deal.

Post reply on HN