Google Chrome浏览器在networking面板中的时间表是什么意思?
通常,在使用Google Chrome的networking面板对问题进行问题排查时,我会看到不同的时间,并经常想知道它们的含义。
有人可以validation我正确理解这些:
- 阻止:浏览器的多个请求阻止相同的域限制(???)
- 等待:正在等待来自服务器的连接(???)
- 发送:将文件从服务器传输到浏览器的时间(???)
- 接收:浏览器分析和解码文件花费的时间(???)
- DNS查找:花在parsing主机名上的时间。
- 连接:build立套接字连接的时间。
现在怎么会有人修复很长的阻塞时间?
现在,如何解决漫长的等待时间呢?
发送是上传数据/请求到服务器的时间。 它发生在阻塞和等待之间。 例如,如果我回发一个ASPX页面,这将指示将请求(包括表单的值和会话状态)上传到ASP服务器所花费的时间。
等待是在请求发送之后,但在收到服务器响应之前的时间。 基本上这是等待服务器响应的时间。
接收是从服务器下载响应的时间。
阻塞是UI线程启动请求和HTTP GET请求进入线路之间的时间。
这些发生的顺序是:
- 阻断*
- DNS查找
- 连
- 发出
- 等候
- 接收
*阻止和DNS查找可能会被交换。
networking选项卡不表示花费时间处理。
如果阻塞时间较长,则运行浏览器的机器运行缓慢。 你可以通过升级机器(更多的内存,更快的处理器等)或减less它的工作量(关掉你不需要的服务,closures程序等)来解决这个问题。
很长的等待时间表明您的服务器需要很长时间来响应请求。 这或者意味着:
- 请求需要很长时间才能处理(例如,如果要从数据库中提取大量数据,需要对大量数据进行sorting,或者需要在需要启动的硬盘上find文件)。
- 您的服务器在合理的时间内接收到太多请求来处理所有请求(可能需要0.02秒来处理请求,但是如果有1000个请求,则会有明显的延迟)。
这两个问题(长期等待+长时间阻塞)是相关的。 如果您可以通过caching来减less服务器上的工作负载,添加新的服务器以及减less活动页面所需的工作,那么您应该可以看到两方面的改进。
您可以在这里阅读谷歌团队的详细官方解释 。 这是一个非常有用的资源,你的信息在时间轴视图部分。
资源networking时间显示与时间线视图中资源栏中相同的信息。 回答你的问题:
- DNS查询 :执行DNS查找的时间。 (你需要找出site.com的IP地址,这需要时间)
- 阻塞 :请求等待已build立的连接可用于重新使用的时间。 正如在另一个答案中所说,它不依赖于你的服务器 – 这是客户端的问题。
- 连接 :build立连接所用的时间,包括TCP握手/重试,DNS查询以及连接到代理或协商安全套接字层(SSL)的时间。 取决于networking拥塞。
- 发送 – 发送请求所用的时间。 取决于发送数据的大小(大部分数据量很小,因为除非提交大图像或大量文本,否则请求几乎总是几个字节),networking拥塞,客户端到服务器的距离
- 等待 – 等待最初回应的时间。 这主要是您的服务器处理和响应您的响应的时间。 如果你的服务器计算东西,从数据库中提取logging等等,这是多快的。
- 接收 – 收到响应数据的时间。 类似于发送,但现在你正在从服务器获取数据(响应大小大多比请求大)。 所以这也取决于大小,连接质量等等。
阻塞 :请求等待已build立的连接可用于重新使用的时间。 正如在另一个答案中所说,它不依赖于你的服务器 – 这是客户端的问题 。
我不同意上面的说法。 所有其他的是相同的[我的机器工作量] – 我的浏览器显示非常less的一个网站“堵塞”的时间和其他网站很长的阻塞时间。
所以如果等待六个线程中的一个+代理协商**很高,主要是因为服务器缓慢或者页面devise不好(太多的线路发送太多次了)的级联效应。
** – 无论“代理商谈判”是什么意思!,没有人很好地解释这一点,尤其是在没有实际涉及本地/ CDN代理的情况下