谷歌浏览器waterfull学习

124 阅读3分钟

今天是五一放假的第一天,坐标上海市青浦区,由于疫情的原因,五一只能在家呆着了,好在放假前囤了点肉跟零食,还买了一箱青岛啤酒(最近失眠了,喝点酒兴许会睡得好点),这个假期应该不会太寂寞了。放假有时间了就做点好吃的,搞点红烧肉,但是没有土豆了,在这物资紧缺的时候,有酒有肉就阿弥陀佛了,趁着炖红烧肉的时候来学习下浏览器waterfull这一块的知识(虽然觉得自己还没到看优化的阶段,但是看代码看的头都大了,换换脑子也不戳)。

image.png

image.png

image.png 上图中各个字段的意思:

  • Queued at: 767.55ms,代表当前的这个请求在加载页面的过程中,加入到请求队列的时间,这个只是从0开时间算的。(浏览器与同一个域名建立的TCP连接数是有限制的,chrome设置的6个,如果说同一时间,发起的同一域名的请求超过了6个(适用于HTTP/1.0和HTTP/1.1),这时候就需要排队了,也就是这个Queued at时间。图中这个被阻塞到767.55ms,才被分配到执行资格,加入到请求队列。HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求)

  • Started at : 表示请求开始处理的时刻。

  • Queueing: 表示请求从加入到请求队列到请求开始处理所经过的时间,从上图可以看到 queueing = started at - queued at。

    • 存在更高优先级的请求,请求被渲染引擎推迟,这经常发生在 images(图像)上,因为它被认为比关键资源(如脚本/样式)的优先级低.
    • 和目标服务器已经创建了6个TCP链接(最多6个,适用于HTTP/1.0和HTTP/1.1)
    • 浏览器正在硬盘缓存上简单的分配空间
  • Stalled :是浏览器得到要发出这个请求的指令,到请求可以发出的等待时间(阻塞时间),一般是代理协商、以及等待可复用的TCP连接释放的时间,不包括DNS查询、建立TCP连接等时间等。

  • Proxy negotiation :代理协商所用时间。

  • Initial Connection / Connecting :建立TCP连接的时间,包括TCP的三次握手和SSL的认证。有的连接会复用以前的tcp连接,此项可能为0ms。

  • SSL :完成ssl认证的时间。

  • DNS Lookup :DNS查询的时间,页面内任何新的域名都需要走一遍 完整的DNS查询过程,已经查询过的则走缓存。

  • Request sent/sending:请求第一个字节发出前到最后一个字节发出后的时间,也就是上传时间。

  • Waiting :请求发出后,到收到响应的第一个字节所花费的时间(Time To First Byte)

  • Content Download :收到响应的第一个字节,到接受完最后一个字节的时间,就是下载时间