优化内容效率

Ilya Grigorik
Ilya Grigorik

我们的网络应用在范围、目标和功能上不断增长 - 这是一件好事。然而,对更丰富的网络内容的不懈追求正在推动另一个趋势:每个应用下载的数据量继续稳步增加。为了提供卓越的性能,我们需要优化每一个字节的传送!

现代 Web 应用是什么样的?HTTP Archive 可帮助我们回答这个问题。此项目通过定期抓取最受欢迎的网站(Alexa 百万热门网站列表中的 300,000 多个网站)以及记录和汇总每个单独目标的资源数量、内容类型和其他元数据的分析来追踪网络的构建方式。

HTTP 归档趋势

第 50 百分位 第 75 百分位 第 90 百分位
HTML 13 KB 26 KB 54 KB
图片 528 KB 1,213 KB 2,384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
其他 282 KB 308 KB 353 KB
总计 1,054 KB 1985 KB 3486 KB

以上数据呈现了 2013 年 1 月至 2014 年 1 月期间,网络上热门目的地的下载字节数的增长趋势。当然,并非所有网站的增长速度都相同,或需要的数据量也不同,因此我们要突出显示分布范围内的不同分位数:第 50 个(中位数)、第 75 个和第 90 个。

2014 年初,中位数网站由 75 个请求组成,总传输字节数为 1054 KB,而且上一年中总字节数(和请求)保持稳定增长。这本身并不足为奇,但确实对性能有重要影响:没错,网速变快了,但在不同国家/地区,网速的提升速度不尽相同,而且许多用户仍受数据上限和昂贵的按流量计费套餐的限制,尤其是在移动设备上。

与桌面应用程序不同,网络应用不需要单独的安装过程:只需输入网址,我们就能启动并运行,这是网络的一个重要功能。然而,要做到这一点,我们通常需要获取数十(有时甚至是数百个)各种资源,所有这些资源加起来可能达到兆字节,而且必须在几百毫秒内汇集到一起,以提供我们追求的即时网络体验。

满足这些要求实现即时网络体验绝非易事,优化内容效率至关重要,原因在于优化内容效率:消除不必要的下载,通过各种压缩技术优化每个资源的传输编码,以及尽可能利用缓存来消除冗余下载。