我需要捕获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毫秒。即使从欧洲的客户到美国的服务器进行测试,时间也是一样的。所以我认为我在这里错过了一些东西。
我同意在同一网段上提出请求。但就我的代码示例而言,捕获base.OnUnload之前的最佳时间是什么? – Jon 2010-11-19 18:54:17
@Jon:我会在卸载事件的开始或渲染事件结束时进行测试。 – NotMe 2010-11-19 20:16:57
我试图捕获卸载事件之前和之后的值。即使在美国和英国的服务器上,这两次都几乎一样。最多的时间是1毫秒。不幸的是,这并不能帮助我。你还有其他建议吗? – Jon 2010-11-22 14:11:43