【问题标题】:Beginner's Profiling Qn - ASP .NET MVC + Mini-Profiler + Chrome Developer Tools初学者的 Profiling Qn - ASP .NET MVC + Mini-Profiler + Chrome 开发者工具
【发布时间】:2012-09-20 20:25:11
【问题描述】:

上面突出显示的两个部分。


1st - Mini-Profiler 告诉我控制器/动作的执行需要多少时间(通过 ajax 调用)

87ms


2nd - Chrome Web Inspector 告诉我完成同一个 ajax 请求需要多长时间

535 毫秒


通过 glimpse,我发现其他生命周期事件(基本控制器/过滤器)的执行花费了大约 22 毫秒。

寻求指导以找出剩余时间的去向。

谢谢。


编辑

这几乎是一致的(Mini-Profiler 和 Chrome Inspector 两个值的差异约为 10 - 20 毫秒)。

这些结果是针对运行 IIS 7.5 的生产服务器 (VPS) 的在线请求。在开发机器(运行 IIS express 的本地主机)上测量这些数字时,Mini-Profiler 和 Chrome Inspector 结果的差异并不那么显着。

【问题讨论】:

  • 这是一致的吗?当您直接针对 iis 而不是 iis express 或 vs web 服务器运行时,会发生这种情况吗?

标签: asp.net-mvc profiling mvc-mini-profiler


【解决方案1】:

由于这些请求是针对在线资源的,因此您需要考虑延迟。

以这个为例:

服务器时间只有 118 毫秒,但是 dns 查找需要 598 毫秒,连接需要另外 205 毫秒,并且响应仅在我访问页面后 +1173 毫秒返回。最后,DOM 只开始渲染 1.27 秒。

服务器位仅考虑在应用内服务器上花费的时间。

你必须添加它。

  1. 解析 dns 所需的时间。
  2. 连接所需的时间(如果没有保持连接)

[等待时间]

  1. 发送请求资源的 TCP 数据包所需的时间
  2. Web 服务器/代理前端的开销
  3. 服务器时间(亮红色数字)
  4. 第一个 TCP 数据包返回给您所需的时间。

[/等待时间]

  1. 其余数据包找到返回给您的路所需的时间。 (了解 TCP 拥塞窗口)
  2. 浏览器解析它返回的内容所花费的时间
  3. 渲染时间

(然后是 JavaScript 和 CSS 的相互依赖关系,我不会在这里讨论)

【讨论】:

  • 如何确定我的 ajax 调用的域查找和连接持续时间?这些值在调用的 Mini-Profiler 中不可见。
  • 直到w3.org/TR/2011/WD-resource-timing-20110524 在网络浏览器中,获取细粒度数据是不可能的。您只能从 firbug 或 chrome 时间轴等中获取。
  • Firebug 告诉我 DNS 查找和连接完全不需要时间。所有的时间都花在等待上。这是否意味着所有这些时间都是“在线”时间?如果它还包括您提到的网络服务器上的一些“开销”时间,也许有一种方法可以准确地找出它的去向?
  • @SaM 很可能都是在线时间,只需 ping 您的服务器,您需要将至少该时间添加到您正在测量的任何内容中。
  • 250 毫秒 ping。所以现在我有大约 200 毫秒下落不明(无法估量):) 也许我应该就这样吧。我只是在想是否有什么我可以做的来进一步加快速度。涉及到一些 db 查询,所以我相信代码花费 100 毫秒来转身还不错;剩下的时间 - 似乎是不可避免的,几乎没有改进的余地,也不是非常理想,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2022-08-21
相关资源
最近更新 更多