有没有一种简单的方法可以获得ASP.Net中的总页面响应时间?

时间:2010-06-03 00:24:24

标签: c# asp.net timer page-lifecycle

通常说PHP或其他Web框架获得总响应时间很简单,只需启动文件顶部的计时器并在结束时停止它。

在ASP.Net中有整个页面生命周期位,但我不知道如何做到这一点。我希望此响应时间记录在母版页中进行,响应时间显示在页脚的页脚中。这样做的最佳方式是什么?是否内置了ASP.Net的内容?甚至可以包含OnRender时间吗?

3 个答案:

答案 0 :(得分:4)

您可以在Global.asax上执行此操作,请查看此article

void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Items["renderStartTime"] = DateTime.Now;
}

void Application_EndRequest(object sender, EventArgs e)
{
DateTime start = (DateTime) HttpContext.Current.Items["renderStartTime"];
TimeSpan renderTime = DateTime.Now - start;
HttpContext.Current.Response.Write("<!-- Render Time: " + renderTime + " -->");
}

答案 1 :(得分:2)

您可以使用

  • global.asax
  • 中的应用程序begin_request和end_request
  • 在客户端使用Firebug检查加载页面所需的时间
  • 使用跟踪功能

有些信息可在以下网址找到:

Measure ASP.NET page load time

答案 2 :(得分:0)

如果您正在运行Visual Studio Team System(现在可能还有其他版本),您还可以使用Visual Studio Profiler(http://msdn.microsoft.com/en-us/magazine/cc337887.aspx)来分析花费最多时间的内容。