我需要捕获ASP.net在我的应用程序中执行每个页面请求所需的时间量,但我需要排除任何网络延迟。我目前通过使用StopWatch类捕获渲染时间,并在页生命周期的OnInit方法期间启动秒表,并在Unload方法完成后停止它。看来,卸载方法包括将请求发送到客户端所需的时间,因此包括任何互联网/网络延迟。我可以在页面生命周期中停止秒表的最后一个可能点是什么,它不包括将请求发送到客户端所需的时间。它会直接在Unload事件之前吗?捕获ASP.Net服务器执行时间没有网络延迟
相关问题:ASP.net在开始发送给客户端之前是否完成响应?还是它开始异步发送,而响应正在形成?
我目前使用ASP.Net 2.0与IIS 5。
我有这样的代码在一个类中,所有我的网页继承:
readonly Stopwatch _serverExecutionTime = new Stopwatch();
protected override void OnInit(EventArgs e)
{
_serverExecutionTime.Start();
base.OnInit(e);
}
protected override void OnUnload(EventArgs e)
{
_serverExecutionTime.Stop();
base.OnUnload(e);
}
UPDATE
我试图在的OnRender方法结束拍摄的执行时间,在开始的OnUnload方法和OnUnload方法的末尾。在所有三种情况下,时间差异最多为1毫秒。即使从欧洲的客户到美国的服务器进行测试,时间也是一样的。所以我认为我在这里错过了一些东西。
2010-11-19
Jon