我们如何衡量HTTP / 2报头压缩的性能改进

时间:2016-03-27 14:04:59

标签: performance http-compression http2

我试图从头压缩中看到HTTP / 2与HTTP / 1.1相比的性能提升。我已经模拟了300ms延迟和50 KB / s带宽的网络(我也尝试了其他一些组合)。

我做了多次测试尝试,将不同数量的请求发送到1到100之间。

在每次测试中,我多次加载我的页面并测量发送的请求和收到的第一个响应字节之间的时间(我使用Navigation Timing API)。在第一个请求和随后的请求之间减少了这个时间。然而,HTTP / 1.1也可以看到类似的减少。 因此,与HTTP / 1.1相比,没有明显的增益。总页面加载时间有相当大的改进,但我没有办法说它来自头压缩或多路复用。所以我认为测量发送请求和收到的第一个响应字节之间的时间应该给出准确的测量。但我无法体验到这一点。

查找我的样本测试结果

enter image description here

衡量标头压缩性能改进的正确方法是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

如果您只想了解标头压缩带来的性能改进,则需要两种情况,其唯一区别是标头压缩。由于HTTP / 1.1不支持标头压缩,因此您需要使用HTTP / 2进行实验。在一个方面,您要求HPACK编码器不使用任何类型的压缩(没有霍夫曼编码,根本不使用表格)。

我看到它的方式,你需要非常精细的服务器支持来衡量这个在一个成熟的网站上。你可能想要一个成熟的网站,以便你的标题足够有趣。因此,我最好的建议是你查看NginX源代码并编辑它的代码,以便尽可能地使HPACK松弛。

如果没有这样一个全面的解决方案,您可以简单地测量专用于标头的HTTP / 2帧中使用的字节数,以及用于站点的HTTP / 1.1提取中的标头的字节数。现在Wireshark和一些解析可以帮助你。我们计划将这些计数器添加到ShimmerCat,但遗憾的是还没有(尽管有quick command line switches来测试不同的协议....)。

答案 1 :(得分:0)

在增加头大小~2 KB并模拟低带宽和高延迟条件后,我能够看到第一个和第二个请求之间的TTFB减少。