set*_*tec 154 google-chrome http httprequest google-chrome-devtools
我在chrome中有以下网络日志:
我不明白其中的一件事:填充灰色条和透明灰色条之间的区别是什么.
Ale*_*ara 176
Google在DevTools文档的评估网络性能部分中提供了这些字段的细分.
失速/阻塞
请求在发送之前等待的时间.此时间包括代理协商所花费的任何时间.此外,这一次将包括当浏览器等待已建立的连接可供重用时,遵守Chrome的每个原始规则最多六个 TCP连接.
(如果您忘记了,Chrome在悬停工具提示和"计时"面板下方有一个"解释"链接.)
基本上,您将看到这一点的主要原因是Chrome每次只下载每个服务器6个文件,其他请求将停止,直到连接插槽可用.
这不一定需要修复,但避免陷入停滞状态的一种方法是将文件分布在多个域名和/或服务器上,如果适用于您的需要,请记住CORS,但HTTP2可能是更好的选择往前走.资源捆绑(如JS和CSS连接)也可以帮助减少停滞的连接数量.
Nag*_*ran 10
进一步调查并确定我们的停滞和排队范围之间没有显着差异.两者都是根据其他时间戳的增量计算的,而不是从netstack或渲染器提供的.
目前,如果我们正在等待套接字可用:
- 如果发生一些代理协商,我们会称之为停滞不前
- 如果不需要代理/ ssl工作,我们会称之为排队.
小智 7
由于许多人到达这里调试他们缓慢的网站,我想告诉你我的情况,谷歌的解释都没有帮助解决。我的巨大停滞时间(有时 1 分钟)是由于 Windows 上运行的 Apache 的工作线程太少而无法处理连接,因此它们正在排队。
如果您的 apache 日志有以下注释,这可能适用于您:
Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
Run Code Online (Sandbox Code Playgroud)
此问题已在 Apache httpd.conf 中解决。取消注释: 包括conf/extra/httpd-mpm.conf
并编辑httpd-mpm.conf
<IfModule mpm_winnt_module>
ThreadLimit 2000
ThreadsPerChild 2000
MaxConnectionsPerChild 0
</IfModule>
Run Code Online (Sandbox Code Playgroud)
请注意,您可能不需要 2000 个线程,或者可能需要更多。2000 年对我来说还可以。
这来自Chome-devtools的官方网站,它有所帮助.在这里我引用:
- 排队 如果请求排队,则表示:
- 该请求被渲染引擎推迟,因为它被认为比关键资源(例如脚本/样式)的优先级低.这通常发生在图像上.
- 该请求被搁置以等待即将释放的不可用TCP套接字.
- 该请求被置于保持状态,因为浏览器在HTTP 1上每个源只允许六个TCP连接.1.制作磁盘缓存条目所花费的时间(通常非常快).
- 停止/阻止 请求在发送之前等待的时间.它可以等待排队描述的任何原因.此外,此时间包括代理协商所花费的任何时间.
归档时间: |
|
查看次数: |
111341 次 |
最近记录: |