衡量页面加载时间?
问题描述:
只见措施的一些其他方法使用痕迹,但我只是想知道这种方法正确措施...衡量页面加载时间?
我overrided以下的每次执行:
PreInit
Init
InitComplete
PreLoad
Load
LoadComplete
PreRender
PreRenderComplete
SaveStateComplete
Unload
然后我保存时间时,处理器使用DateTime.Now.Tick执行...
在卸载结束时,我会打印出他们的每一个执行时间....
所以上面的时间应该是时间花在服务器生成这一页?
我问是因为我注意到一些页面了像879ms总之上,但直到我的浏览器实际看到的页面是需要几秒钟。
那几秒钟应该是从服务器下载页面所需的时间?
在此先感谢。
答
是的,有时间的代码运行,并从服务器获取并输出到屏幕的响应时间为浏览器。您可以使用各种测量位置的测量前端工作:
要确定代码的处理时机,我会使用StopWatch
class,而不是使用DateTime
。 DateTime对小数点更精确,但不太准确。 StopWatch
正是为此而设计的,并且会更好地用于计算时间。避免调用它很多,因为它本身会增加页面处理的开销。我会创建一个new StopWatch()
,然后在开始时调用Start,然后在最后调用Stop。然后吐出经过的时间。
答
在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");
}
}
}
}
这里[博客文章(http://stevesmithblog.com/blog/show-page-load-时间/),这解释了完成这个的两种方式的细节。 – Druid 2011-04-14 18:19:48