83

通常在使用 Google Chrome 的网络面板对性能进行故障排除时,我会看到不同的时间,并且经常想知道它们的含义。

有人可以验证我是否正确理解这些:

  1. Blocking:被浏览器多次请求同域限制的时间(???)
  2. 等待:等待来自服务器的连接(???)
  3. 发送:将文件从服务器传输到浏览器所花费的时间(???)
  4. 接收:浏览器分析和解码文件所花费的时间(???)
  5. DNS 查找:解析主机名所花费的时间。
  6. 连接:建立套接字连接所花费的时间。

现在有人将如何解决较长的阻塞时间?

现在有人将如何解决漫长的等待时间?

4

3 回答 3

93

发送是将数据/请求上传到服务器所花费的时间。它发生在阻塞和等待之间。例如,如果我回发一个 ASPX 页面,这将表明将请求(包括表单的值和会话状态)上传回 ASP 服务器所花费的时间。

等待是在发送请求之后,但在收到来自服务器的响应之前的时间。基本上这是等待服务器响应所花费的时间。

接收是从服务器下载响应所花费的时间。

阻塞是 UI 线程开始请求和 HTTP GET 请求进入网络之间的时间量。

这些发生的顺序是:

  1. 阻塞*
  2. DNS 查询
  3. 连接
  4. 发送
  5. 等待
  6. 接收

*阻止和 DNS 查找可能会被交换。

网络选项卡不指示处理所花费的时间。

如果您的阻塞时间很长,则运行浏览器的机器运行缓慢。您可以通过升级机器(更多 RAM、更快的处理器等)或减少其工作量(关闭不需要的服务、关闭程序等)来解决此问题。

较长的等待时间表明您的服务器需要很长时间才能响应请求。这要么意味着:

  • 该请求需要很长时间来处理(例如,如果您从数据库中提取大量数据,需要对大量数据进行排序,或者必须在需要启动的 HDD 上找到文件)。
  • 您的服务器接收到太多请求,无法在合理的时间内处理所有请求(处理请求可能需要 0.02 秒,但是当您有 1000 个请求时,会有明显的延迟)。

这两个问题(长时间等待+长时间阻塞)是相关的。如果您可以通过缓存、添加新服务器和减少活动页面所需的工作来减少服务器上的工作量,那么您应该会看到这两个方面的改进。

于 2012-10-04T18:13:59.040 回答
25

您可以在此处阅读 google 团队的详细官方说明。这是一个非常有用的资源,您的信息位于时间轴视图部分。

资源网络计时显示的信息与时间线视图中的资源栏中的信息相同。回答你的问题:

  • DNS 查找:执行 DNS 查找所花费的时间。(您需要找出site.com的IP地址,这需要时间)
  • 阻塞:请求花费的时间等待已建立的连接变为可重用。正如在另一个答案中所说,它不依赖于您的服务器 - 这是客户端的问题。
  • 连接:建立连接所花费的时间,包括 TCP 握手/重试、DNS 查找以及连接到代理或协商安全套接字层 (SSL) 的时间。取决于网络拥塞情况。
  • 发送- 发送请求所花费的时间。取决于发送数据的大小(通常很小,因为您的请求几乎总是几个字节,除非您提交大图像或大量文本)、网络拥塞、客户端与服务器的接近程度
  • 等待- 等待初始响应所花费的时间。这主要是您的服务器处理和响应您的响应的时间。如果您的服务器计算事物,从数据库中获取记录等等,这就是多快。
  • 接收- 接收响应数据所花费的时间。类似于发送的东西,但现在您从服务器获取数据(响应大小大多大于请求)。所以它还取决于大小、连接质量等。
于 2014-03-15T06:55:35.153 回答
1

阻塞:请求花费的时间等待已建立的连接变为可重用。正如在另一个答案中所说,它不依赖于您的服务器 - 这是客户端的问题

我不同意上面的说法。其他一切都相同 [我的机器工作量] - 我的浏览器显示一个网站的“阻塞”时间非常少,而其他网站的阻塞时间很长。

因此,如果等待六个线程之一+代理协商**高,则主要是由于服务器速度慢的级联效应或页面设计不良[通过网络发送过多,次数过多]。

** - 无论“代理协商”是什么意思!,没有人能很好地解释这一点,尤其是在实际不涉及本地/CDN 代理的情况下

于 2015-06-30T11:17:29.587 回答