我正在开发一个使用MasterPage的ASP.NET应用程序,我想测量我的应用程序webform的加载时间,并将该信息显示给客户端.
我目前的策略涉及使用Application_BeginRequest事件关联的回调(在我的网站解决方案的Global.asax文件中)来开始衡量在服务器端进程中花费的时间(如下)
protected void Application_BeginRequest(Object sender,EventArgs e) { Context.Items.Add("Request_Start_Time",DateTime.Now); }
并计算Webform的OnPreRender事件相关回调的经过时间,并将其打印在占位符元素上(如下所示)
protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); TimeSpan tsDuration = DateTime.Now.Subtract((DateTime)Context.Items["Request_Start_Time"]); ExecutionTime.InnerHtml = "<em>Server-side processing duration: " + tsDuration.TotalMilliseconds + " miliseconds.</em>"; }
这是衡量装载时间的最佳方式吗?有没有更加“优雅”的方式来完成这个?
提前感谢您的时间与合作.
解决方法
<%@ Page Trace =“true”%> (或在web.config中设置此项)
启用跟踪并查看trace.axd(在您的网站的根目录中)中的信息.
那么你可以设置时间点:
Trace.Write("Start time intensive task"); Trace.Write("Stop time intensive task");
http://msdn.microsoft.com/en-us/library/bb386420.aspx
这是假设“您的客户端”需要深度调试数据.