“黑客新闻”(Hacker News)最近的一篇报道称,尽管网速提高了,但网页速度并没有提高。
我们还将看看设备和网络在过去10年中发生了怎样的变化,以及这些变化对网络性能意味着什么。
尼尔森·诺曼集团(Nielsen Norman Group)文章中的这张图表表明,增加移动网络带宽并没有带来更快的页面加载时间。
自2013年来,负载指标增加了55%,从12.7秒增加到19.7秒。如果你在2013年买了一部手机,从那以后就一直在使用3G连接,那么对你来说,网络变得更慢了。
在看设备和网络在过去10年里发生了怎样的变化之前,这里有一些关于如何考虑这些数据的注意事项。
Load事件是在下载了所有页面资源(如脚本或图像)后由页面发出的。
如果页面顶部呈现得很快,但页面还向下加载了20个图像,则onLoad度量将表明该页面很慢。
不同的页面最初可能根本不会呈现任何有用的内容,而只是在onLoad事件之后很长一段时间才开始加载额外的资源和呈现内容。不过,这个页面会很快出现。
因此,onLoad并没有很好地衡量用户体验页面的速度是否如此之快。
那么,我们为什么还要看这个指标呢?因为它已经存在很长一段时间了,HTTP Archive自2010年以来一直在追踪它。更新的指标,如第一次内容画或互动时间,直到2017年才被添加到HTTP存档中。
如果带宽在某个时候是瓶颈,那么增加带宽只会使页面加载更快。如果您使用的是千兆连接,且网络往返时间为1秒,则不会有任何帮助。
但是,HTTP Archive模拟的1.6 Mbps 3G连接速度非常慢,因此随着带宽的提高,性能会有显著提高。2020年,平均每个网站下载1.7MB的数据,这至少需要9秒才能通过HTTP Archive连接下载。
在这篇文章中,我将详细介绍一下一般的网站。值得一提的是,HTTP存档只收集主页上的数据,而不是站点更深层的页面。随着时间的推移,测试领域的语料库也在增长。
这些测试并不总是在同一设备上运行。最初使用的是实体iPhone4,现在测试在模拟的Android设备上运行。
在本文中,我们将查看中位数度量值。如果大多数网站都很快,但有五分之一的网站将你的手机冻结了20秒,我们将无法接收到这一点。
本文将关注美国的移动性能。然而,如果您正在查看原始文章中的桌面数据,那么值得注意的是,2013年的测试带宽增加了,延迟减少了。
根据不同的消息来源,这张图表显示了美国每年的平均移动带宽。它从1 Mbps增加到30 Mbps左右。
(我在收集这些数据时不是很小心。例如,我没有始终如一地区分数据是什么时候收集的和什么时候发布的。您可以在这里找到我的资源。)。
这很难找到数据,但结果表明,延迟从2011年的200毫秒左右下降到2020年的50毫秒。
我还没有找到美国移动设备平均速度的数据。但亚历克斯·罗素和苏玛发布了一张图表,显示了Geekbench 4的得分以及不同手机的发布年份。
即使是经济型手机的速度也提高了4倍,iPhone现在的功能也提高了20倍。
在过去的10年里,在浏览器方面做了很多工作。JavaScript已经成为Web中更大的一部分,所以很多改进都集中在这里。
看看V8博客中的这张图表,页面的CPU使用率下降了4倍。
浏览器联网也有所改善,例如在2015年引入HTTP/2。64%的请求现在通过HTTP/2提供服务。
2013至2020年间,移动页面权重增长了337%。这主要是由图像和JavaScript代码的增加推动的。
该图表从2013年开始,因为HTTP Archive在2012年10月改变了其方法。在页面权重计算不足之前,因为当页面加载事件被触发时,即使仍在加载更多数据,测试也会停止。
如果尽管移动网络速度更快,页面变得越来越慢,JavaScript将是最有可能的罪魁祸首。不幸的是,HTTP Archive在2017年末才开始收集这些数据,此后似乎基本稳定。
请注意,绝对运行持续时间(0.5s)比您通常在灯塔等工具中看到的要短。这些工具通常会减慢JavaScript的执行速度以模拟移动设备,但是在HTTP存档测试中这一点被打破了。因此,虽然这个数字对于中档手机来说可能是现实的,但一个普遍的假设是,经济型手机的速度大约是原来的4倍。
网络变慢了吗?嗯,这取决于你的设备、网络连接和最常使用的网站。
我们需要权衡真实世界的性能数据,以获得显示不同用户在一段时间内如何体验网络的分布。一个人每天打开数千个页面的经历应该和一个一周只访问一次Facebook的人一样重要吗?
我没有每个用户的详细数据,但我们可以用几种不同的方式来看一下这个问题:
我也试过从Archive.org下载旧的页面版本,并用灯塔测试它们,但在我有空的时间里没能得到有意义的结果。例如,页面存档中经常缺少一些图像。
CRUX数据的最大局限性在于,它是从2017年末才开始收集的。但我们仍然可以用它来看看在过去的两年半里,网络是否变得更慢了。
请注意,与HTTP存档不同,CRUX会查看整个域,而不仅仅是主页。
我们将要查看的数据是第75个百分位数,这意味着对于75%的用户来说,页面加载速度至少是这么快的。
Onload指标显示略有改善,可能是由于带宽增加。或者,可能在初始页面加载之后现在发生了更多的活动。
油漆指标似乎相当稳定。最大含量油漆是一项新指标,从2019年年中才开始收集。
美国负荷量指标的下降趋势与全球数据相匹配。然而,不同国家的页面加载时间存在显著差异,印度的加载时间几乎是韩国的两倍。
我们可以使用关键数据来透视HTTP存档数据。根据HTTP Archive的综合数据,2020年1月,HTTP Archive报告的加载时间中值(50%)为18.7秒。
相比之下,CRUX建议的加载时间只有5.8s-1,这是第75个百分位数。
(请注意,此处的全局值仅取平均值,不按人口加权。)。
我们可以创建一个理论模型,说明设备、网络和网站的变化可能如何影响整体性能。
页面重量随着时间的推移而增加,但带宽也是如此。往返延迟也有所下降。
在2013年,下载一个中值移动网站大小的文件需要1.7秒。如果您的连接从那时起没有改善,那么现在下载这么多数据将需要4.4秒。但以今天的平均连接来说,这只需要0.9秒。
在实践中,一个网站不会只由一个请求组成,CPU处理或服务器延迟等其他因素也会影响页面加载的速度。HTTP Archive报告的加载时间是这个下限的2-3倍。
但我们仍然可以用它作为一个指标,表明减少的延迟和增加的带宽有助于网站整体更快地加载。
(我将从2013年开始,而不是从2011年开始,因为从那时起,HTTP存档页面权重指标才得到一致的衡量。)。
我不太确定该怎么想这件事,但无论如何我都会猜一猜。
2013年使用Galaxy S4,现在使用Galaxy S10的人会发现,他们的CPU处理能力提高了5倍。让我们假设从那时起,浏览器的效率已经提高了4倍。如果我们天真地将这些数字相乘,总体性能会提高20倍。
自2013年以来,JavaScript页面权重从107KB增加到392KB,增长了3.7倍。也许缩小和压缩也有了一些改进,所以现在更少的字节可以容纳更多的JavaScript代码。让我们把倍数四舍五入到6倍。让我们假设JavaScript页面权重与JavaScript执行时间成正比。
今天的网站运行更多的代码,比10年前的网站大好几倍。尽管如此,我并不认为移动网络--用户体验到的那样--整体上变慢了。
与此同时,现在有更多的人体验移动网络。这将拖累人们对网络性能的整体体验。
移动设备的处理能力正在赶上台式设备,网络带宽也是如此。与此同时,推出了新的更便宜的低端设备。
查看数据有两种方式。一方面,网络正在慢慢变得更快。另一方面,网络和设备的改进意味着错失了更显著的性能改进机会。