Glimpse的HUD提供了一个非常有用的时间视图 - 它们似乎与各种浏览器的网络捕获开发人员工具相关联。
如果我按照by Phil Haack详细介绍自定义HttpModule
的简单实现,我会得到完全不同的服务器处理时间。收到的时间总是远低于Glimpse报道的时间。然而,Glimpse与浏览器工具时序的关系更加紧密。
Glimpse显然正在使用一种更复杂的技术来计算它。
答案 0 :(得分:9)
如果您查看glimpse.hud.js文件,该文件是发送到客户端的 glimpse.js 客户端文件的一部分,那么您将看到所有时间基于浏览器实现的Navigation Timing API。
根据该API提供的时间计算Gynmpse在HUD中显示的时间。所以,首先Glimpse坚持这些时间
var timingsRaw = (window.performance
|| window.mozPerformance
|| window.msPerformance
|| window.webkitPerformance
|| {}).timing;
之后,它开始计算时间,这些时间可以提供一些关于在哪里寻找性能问题的额外价值(是服务器上,客户端上的问题......)
processTimings = function (details) {
var result = {},
networkPre = calculateTimings('navigationStart', 'requestStart'),
networkPost = calculateTimings('responseStart', 'responseEnd'),
network = networkPre + networkPost,
server = calculateTimings('requestStart', 'responseStart'),
browser = calculateTimings('responseEnd', 'loadEventEnd'),
total = network + server + browser;
...
};
calculateTimings = function (startIndex, finishIndex) {
return timingsRaw[finishIndex] - timingsRaw[startIndex];
};
正如您所看到的,这也适用于服务器显示的时间,这解释了为什么您在服务器上有效计算的时间低于Glimpse显示的时间。< / p>
注意:当然,计算这些计时的方式仅适用于HTTP选项卡上HUD中显示的计时。例如,时间轴选项卡中显示的计时是在服务器上计算的,因为它们显示服务器上不同处理步骤之间的时间,这显然是浏览器无法计时的。
我希望这能回答你的问题。