定时ASP.NET页面加载

时间:2012-02-22 08:30:53

标签: c# asp.net

在ASP.NET页面中测量代码运行时的最佳方法是什么?

这是我的代码,试图计算页面加载时间并写入日志。

   private Stopwatch PageTimer = null;

    protected void Page_Init(Object Src, EventArgs E)
    {
        if (!IsPostBack)
        {
            PageTimer = new Stopwatch();
            PageTimer.Start();


        }
    }

    protected override void OnPreRender(EventArgs e)
    {
        if (!IsPostBack)
        {
            PageTimer.Stop();
            Logger.SectionEnd("PageTimer", PageTimer, "", true);
        }
        base.OnPreRender(e);
    }

5 个答案:

答案 0 :(得分:4)

您可以尝试mvc-mini-profiler

答案 1 :(得分:2)

我建议您使用HttpModule。

有一个你可以使用的

HttpModule For Timing Requests (很老,我知道,但仍然有效)

关于HttpModules的一个好处是,如果“主应用程序”具有代码,则让它们自行注册。然后在另一个应用程序中使用模块只是复制粘贴到bin文件夹中,它将开始运行。

如果“主应用程序”不支持自行注册的模块,则可以将其添加到bin和web.config中以开始操作。

答案 2 :(得分:1)

答案 3 :(得分:1)

如果你想要简单快速的东西我建议使用global.asax文件 您可以通过在网站中选择新文件来创建此文件。

global.asax文件有一些方法,你应该寻找的是方法 的Application_BeginRequest
Application_EndRequest

你可以启动一个计时器,写一些记录,做任何事情来获得这两个请求之间的时间 通过这样做,您可以获得请求在服务器上花费的确切时间,如果您在page_load和page_prerender中执行此操作,则会错过重定向,身份验证,成员资格等内容。

答案 4 :(得分:0)

如果排除日志记录,则可以使用firebug来衡量客户端性能。