解决方法
是的Derin建议是在ASP.NEt应用程序中做标准的方法,我只是建议添加一个如果这样,它不会干扰非HTML响应:
编辑:添加完成实现
编辑:添加完成实现
public class PerformanceMonitorModule : IHttpModule { public void Init(HttpApplication context) { context.PreRequestHandlerExecute += delegate(object sender,EventArgs e) { //Set Page Timer Star HttpContext requestContext = ((HttpApplication)sender).Context; Stopwatch timer = new Stopwatch(); requestContext.Items["Timer"] = timer; timer.Start(); }; context.PostRequestHandlerExecute += delegate(object sender,EventArgs e) { HttpContext httpContext = ((HttpApplication)sender).Context; HttpResponse response = httpContext.Response; Stopwatch timer = (Stopwatch)httpContext.Items["Timer"]; timer.Stop(); // Don't interfere with non-HTML responses if (response.ContentType == "text/html") { double seconds = (double)timer.ElapsedTicks / Stopwatch.Frequency; string result_time = string.Format("{0:F4} sec ",seconds); RenderQueriesToResponse(response,result_time); } }; } void RenderQueriesToResponse(HttpResponse response,string result_time) { response.Write("<div style=\"margin: 5px; background-color: #FFFF00\""); response.Write(string.Format("<b>Page Generated in "+ result_time)); response.Write("</div>"); } public void Dispose() { /* Not needed */ } }
你也可以添加一些风格…
并记住在httpConfig部分的WebConfig中注册你的模块:
<add name="Name" type="namespace,dll"/>
有关此检查的完整参考,请参阅Steven Sanderson的Pro ASP.NET MVC框架 – 第15章 – 性能,监视页面生成时间。
编辑:(评论@Pino)
这是我的项目的例子:
alt text http://www.diarioplus.com/files/pictures/example_performance.JPG