测量页面加载时间

本文关键字:时间 加载 测量 | 更新日期: 2023-09-27 17:50:24

我看到了使用trace的其他度量方法,但是我只是想知道这个方法是否正确度量…

我重写了以下语句的每次执行:

PreInit 
Init 
InitComplete 
PreLoad 
Load 
LoadComplete 
PreRender 
PreRenderComplete 
SaveStateComplete 
Unload

然后使用DateTime.Now.Tick…存储处理程序执行的时间

在卸载结束时,我将打印出它们的每个执行时间....

所以上面的时间应该是服务器用来生成页面的时间?

我问是因为我注意到一些页面总共花费了879ms以上,但直到我的浏览器真正看到页面是花了几秒钟。

这几秒钟应该是从服务器下载页面的时间?

测量页面加载时间

in global.asax

namespace aaaaa
{
public class Global : System.Web.HttpApplication
{
    private Stopwatch sw = null;
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
            sw = Stopwatch.StartNew();
    }
    protected void Application_EndRequest(object sender, EventArgs e)
    {
        if (sw != null)
        {
            sw.Stop();
            Response.Write("took " + sw.Elapsed.TotalSeconds.ToString("0.#######") + " seconds to generate this page");
        }
    }
}
}

是的,有时间让代码运行,也有时间让浏览器从服务器获取响应并将其输出到屏幕。您可以使用各种测量站点来测量前端工作:

    <
  1. Pingdom工具/gh>
  2. WebWait
  3. 网页测试

为了确定处理代码的时间,我将使用StopWatch类而不是使用DateTime。DateTime更精确到小数点,但精度较低。StopWatch正是为此而设计的,可以更好地用于计算时序。但是要避免频繁调用它,因为调用它本身会增加页面处理的开销。我会创建一个new StopWatch(),然后在最开始调用Start,然后在最后调用stop。然后吐出经过的时间。

    <
  • 秒表类/gh>
  • 精确运行时间测量秒表

如果您只是在寻找总体时间,为什么不查看IIS日志中的花费时间值呢?

在浏览器上的额外时间可能是很多事情。抓取、图像、CSS、javascript文件、在页面中运行的javascript,以及HTML本身的客户端呈现。如果你想更好地了解实际发生了什么,什么时候启动Fiddler,然后重新加载页面,看看Fiddler中发生了什么。