代码之家  ›  专栏  ›  技术社区  ›  XpiritO

测量ASP.NET页面加载时间

  •  14
  • XpiritO  · 技术社区  · 15 年前

    MasterPage 我想测量我的应用程序webform的加载时间,并将该信息显示给客户端。

    我目前的策略是使用 Application_BeginRequest Global.asax 我的网站解决方案的文件),以开始测量服务器端进程所花费的时间(如下所示)

    protected void Application_BeginRequest(Object sender, EventArgs e) {
       Context.Items.Add("Request_Start_Time", DateTime.Now);
    }
    

    并计算网络表单上的运行时间 OnPreRender 事件关联回调,在占位符元素上打印它(如下所示)

    protected override void OnPreRender(EventArgs e) {
       base.OnPreRender(e);
    
       TimeSpan tsDuration = DateTime.Now.Subtract((DateTime)Context.Items["Request_Start_Time"]);
       ExecutionTime.InnerHtml = "<em>Server-side processing duration: " + tsDuration.TotalMilliseconds + " miliseconds.</em>";
    }
    

    这是测量装载时间的最佳方法吗?有没有更“优雅”的方式来实现这一点?

    3 回复  |  直到 15 年前
        1
  •  9
  •   Erwin    15 年前

    <%@Page Trace=“true”%>(或在web.config中设置)

    启用跟踪并签出trace.axd中的信息(在网站的根目录中)。

    然后,您可以使用以下设置计时点:

    Trace.Write("Start time intensive task");
    Trace.Write("Stop time intensive task");
    

    http://msdn.microsoft.com/en-us/library/bb386420.aspx

    这是假设“您的客户机”需要深度调试数据。

        2
  •  5
  •   realMarkusSchmidt    15 年前

    Render 方法(没有经验的服务器控件作者倾向于这样做…)。

    HttpResponse.Filter 对象以用经过的时间填充占位符。应用这些过滤器 之后

    trace.axd ,这将为您提供大量详细信息,不仅包括时间,还包括请求上下文、控制树结构和页面大小。

        3
  •  1
  •   Mitchel Sellers    15 年前

    这实际上取决于您希望实际显示的度量。

    1. 这是一个总的“以秒加载页面”类型的东西,它会一直存在吗?

    这两个问题的答案将决定什么是录音最有意义的。如果你的目标是#1,那么我会说你的方法有效。如果你选2号,我可以看看欧文有什么。