博客中的单个时间列自然包括客户端传输时间。对于anamoly分析,我想区分那些花费过多构建时间的页面与那些只是缓慢客户端的请求。
对于缓冲页面,我查看了ASP.NET页面生命周期模型,但在页面刷新到客户端之前,我没有看到可以点击的位置和代码测量页面处理时间。
我可能应该提到我的目标是生产监控(不是测试或开发)。此外,目的是使用此度量对Weblog进行注释以供以后分析。目前,我们使用Response.AppendToLog()自由地注释weblog。我相信使用Response.AppendToLog()的愿望在某种程度上限制了我的潜在对数点,例如,在Application_EndRequest中,response-object不可行。
任何见解都将受到赞赏。
答案 0 :(得分:2)
您可以在BeginRequest和PreSendRequestContent中使用秒表,如其他两个答案中所述,或者您可以在PreSendRequestContent中使用请求的时间戳。
例如,在SingingEels上,我将此添加到了母版页的底部(是的,这是一个黑客):<%=DateTime.Now.Subtract(HttpContext.Current.Timestamp).TotalSeconds %>
通过这种方式,我可以看到任何页面在服务器上实际执行的时间,包括访问数据库等等。
答案 1 :(得分:0)
最简单的方法可能是使用global.asax文件中的follow事件:
protected void Application_BeginRequest(Object sender,EventArgs e)
protected void Application_EndRequest(Object sender,EventArgs e)
您还可以实施自定义httpmodule
答案 2 :(得分:0)
这取决于您拥有的性能工具的功能集。但是如果您只需要记录处理时间,那么您可以采用这种方法。
如果您只想要一个特定的页面,那么您可以在BeginRequest事件中检查这一点。 应用程序事件可以附加在Global.asax中。
答案 3 :(得分:0)
如果您想登录特定页面,我相信asp.net页面的生命周期以PreInit开头并以Disposed结束,因此您可以在这些事件中记录您想要的任何内容。
或者,如果您想登录每个页面,正如Bob Dizzle指出的那样,您可以使用Global.asax文件,该文件有一千个事件可供选择:http://msdn.microsoft.com/en-us/library/2027ewzw.aspx
答案 4 :(得分:0)
您也可以在Web服务器上进行测试。然后ClientTransmission时间变为有效0。