浏览器gzip解压缩开销/速度

7
浏览器解压缩平均大小网页的gzip服务器响应需要多长时间?<1ms 1-3ms? 还是更多?

大概是1.3M左右。不需要非常准确,我只是想知道在解压过程中存在什么样的开销。 - Brian McGinity
2个回答

7
我假设您指的是未压缩的1.3M。在2 GHz i7的一个核心上,我大约需要6毫秒的解压时间。
如果我假设1/3的压缩率,则如果不进行压缩,需要传输额外的7 Mbits。在1 Gbit/s的链接上,这将需要超过6毫秒的时间。在更典型的10 Mbit/s链接上需要700毫秒。
gzip对于HTTP传输来说是一个很大的优势。

在100Mbps下传输7,270,127位需要8.6毫秒。因此,浏览器开销为6毫秒,服务器执行gzip的开销为2毫秒,这是一个平衡吗? - Brian McGinity
不值得。通信链路是共享资源,如果在此上额外发送7M位,则会影响所有使用该线路的用户,因此如果可以的话,最好避免这种情况(CSMA/CD)。 - rlb
这对我来说是新领域。几乎所有我读到的都说gzip是一个双赢,有些人谈论第一个字节到浏览器并不是那么好。我对网络的理解非常有限,所以我尝试使用这个计算器:http://www.calctool.org/CALC/prof/computing/transfer_time。谢谢你帮我梳理这个问题... - Brian McGinity
1
这应该是被接受的答案。此外,@MarkAdler关于解压延迟的一般评论很可能是答案的一部分,并且可以加以阐述。 - Joó Ádám
@Brian McGinity,如果你还在看的话,我认为有必要指出几乎没有人拥有100 Mbps的连接。在移动设备上,我们有时只能幸运地拥有2 Mbps。 - LearningFast
显示剩余3条评论

3

使用默认参数的gzip的zlib实现。

在一个面向互联网的服务器上,Xeon 2.66Ghz四核CPU,gzip压缩时间小于0.5毫秒,最高达到15Kb。361Kb的压缩时间为4.50毫秒,1077Kb需要13毫秒。

然而,考虑到我们大部分的流量都是通过wifi或3G链路传输,因此传输时间远远超过了服务器延迟,我认为这仍然值得。

这些时间是通过代码括起来调用gzip例程并使用纳秒精度计时器测量的,我已经改变了源代码以实现这一点。我本来就在测量这个,因为我想确定缓存gzip是否值得内存折衷,或者gzip是否足够快。在我们的情况下,我认为我们将gzip所有大约200字节以上的内容,并积极缓存gzip响应,特别是针对较大的数据包。

(@Mark Adler,感谢您编写zlib)


感谢您分享您的发现。您是如何进行测量的?我并不认为在Web服务器上启用gzip会改善用户体验,因为网络速度非常快,延迟时间只有20毫秒。 - Brian McGinity
1
这不是关于ping时间的问题,而是关于传输时间的问题。 - Mark Adler
3
这与问题无关,问题是关于解压缩的。 - Joó Ádám

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接