为了提高gzip的性能,建议的最小对象大小是多少?


31

我正在努力改善页面速度的显示时间,其中一种方法是gzip来自网络服务器的内容。

Google建议

请注意,gzip压缩仅对更大的资源有用。由于压缩和解压缩的开销和延迟,因此您只能使用超过一定大小阈值的gzip文件。我们建议最小范围为150到1000个字节。将文件压缩到150字节以下实际上会使它们变大。

我们通过Akamai为其内容提供服务,并使用其网络作为代理和CDN。他们告诉我的内容:

跟进有关最小大小是多少的问题,Akamai在将请求的对象发送给最终用户时将对其进行压缩:最小大小为860字节。

我的回复:

Akamai的最小大小为860字节的原因是什么?举例来说,为什么Akamai为Facebook提供的文件不是这种情况?(请参阅下文)Google建议更积极地gzip。在我们的网站上,这似乎是恰当的,到目前为止,点击率最高的是<860字节的AJAX调用。Facebook标题截图质疑Akamai的声明

Akamai的回应:

860字节是压缩的最小大小的原因有两个:(1)在860字节以下压缩对象的开销超过了性能提升。(2)860字节以下的对象始终可以通过单个数据包进行传输,因此没有迫切的理由对其进行压缩。

所以我在这里进行一些事实检查。由于数据包大小而导致的860字节限制是否在此推理的结尾?为什么高流量站点将其降低到150字节限制...只是为了节省带宽成本(因为CDN的收费基于从原始站点卸载的带宽),或者这样做会提高性能?


2012年7月9日更新: 我问史蒂夫· 苏德斯(Steve Souders)是否已经获得了比数据包小的gzip压缩响应性能提升,以及为gzip性能带来好处的建议最小对象大小是多少,这是他的响应:

谢谢你的电邮。大小介于1-5K之间。Apache有一个默认值,但我忘了它是什么-那将是一个很好的指南。

我们在F5设备上进行压缩,因此我们将其压缩到〜350字节,因为在那和1K之间有相当数量的AJAX调用。我们网站上少于350个字节的AJAX调用全都减少了约70个字节...比Google的建议还少...所以它似乎可以归结为:了解您的网站并根据您的代码进行调整

F5更新在Production中运行一段时间后,我将回到这篇文章。我认为性能上的好处不大,但由于服务较少,我们会降低Akamai的成本。


@Steve,关于四月份的编辑,我添加了welp来澄清感觉,因为该领域答复的专家没有回答任何一个问题。我很高兴听到桑德斯先生的来信,但他也不知道确切的答案。
utt73 '18

至于“在F5更新在Production中运行一段时间后返回本文,”尽管我不再使用该特定Web应用程序,但我们成功实现了平均页面load()事件和Time to互动(TTI)低于2秒,有效负载工作量的减少只是其中的一小部分。减少http流量调用的次数,扩展浏览器缓存,优化代码以及其他Web性能最佳实践都有助于实现这一目标。
utt73 '18

Answers:


3

您在谈论带宽成本带来的好处,然后还要比较浏览器中页面加载的性能。他们是两回事。

每当您对请求进行gzip压缩时,实际上必须进行某种压缩(在您的情况下为F5),而客户端(或技术上的代理)则必须处理解压缩。这可能会增加请求的延迟,具体取决于两端硬件的功能。

“ gzip的最小大小”基于压缩/解压缩少量数据所需的时间,从网络浏览器体验的角度来看,这些数据无济于事。如果您纯粹是在谈论带宽节省,那么就继续将最低设置设置为所需的最低值,但是要知道可能不会给最终用户带来任何性能提升。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.