2012-02-22 138 views
2

测量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); 
    } 

回答

2

我建议你使用HttpModule。有一个你可以在

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

有关的HttpModules一个好处是使用你有他们自行注册自己,如果“主应用程序”有码它。然后,在另一个应用程序中使用模块只需将其复制粘贴到bin文件夹中即可开始操作。

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

+0

只是扩大了一些... – Asken 2012-02-22 10:42:07

4

您可以试试mvc-mini-profiler

+0

实际上这其实很酷。 – Asken 2012-02-22 08:35:22

+0

它适用于网页表单吗? – Stilgar 2012-02-22 09:20:07

+0

是的,它工作得很好:http://stackoverflow.com/a/6322629/29407 – 2012-02-22 09:21:11

1

如果你想的东西简单,快捷我建议使用Global.asax文件。
你可以通过在网站上选择新文件来创建这个文件。

Global.asax文件有几个方法,你应该寻找那些有
的Application_BeginRequest
Application_EndRequest

你可以启动一个定时器,写一些日志,做任何让它们之间的时间2个请求。
通过做这样你有确切的时间请求您的服务器上度过的,如果你在Page_Load和page_prerender做你喜欢重定向,认证,会员等东西错过了

0

如果排除日志记录,则可以使用萤火虫来衡量客户端的表现。