asp.net计算页面执行时间

转:http://stackoverflow.com/questions/1826657/page-generation-time-asp-net-mvc

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 */ }

}

  

你可能感兴趣的:(asp.net)