在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);
}
答案 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来衡量客户端性能。