【问题标题】:How do I show the page generation time in asp.net?如何在 asp.net 中显示页面生成时间?
【发布时间】:2020-11-22 23:10:02
【问题描述】:

监控渲染我的 asp.net 页面需要多长时间的最简单方法是什么(如果重要的话,我仍在使用 webforms)?

我知道页面生命周期非常复杂,但我基本上只是在寻找一个数字,它告诉我我的代码运行了多长时间并将其显示在页面的底部(或任何地方)。

编辑

有几个人提到了 asp.net 跟踪配置,它很棒,我不知道我是怎么错过的。我仍在寻找的一件事是如何仅输出最终渲染时间:即

Response.Write(Context.Trace.FinalRenderTimeFromFirst)

但我不知道如何检查跟踪元素的内容。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    我使用 Fiddler (http://www.fiddler2.com/Fiddler2/version.asp) 来处理这些事情。它不是特定于 ASP.NET,但它会在页面呈现给客户端时分解页面,并显示页面进入浏览器时加载每个部分所花费的时间。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      您想要启用跟踪。

      来自The Basics of .NET Tracing

      [M]修改微量元素 web.config如下:

      <trace enabled="true" .../>

      【讨论】:

      【解决方案3】:

      将 trace=true 放在 .aspx 文件的第一行,并在后面的代码中使用 response.trace("") 向其中添加附加信息。

      【讨论】:

        【解决方案4】:

        我通常将这个简单的代码添加到布局视图的底部:

        <!-- Page generated in @((DateTime.UtcNow - HttpContext.Current.Timestamp.ToUniversalTime()).TotalSeconds.ToString("F4")) s -->
        

        我正在使用带有 Razor 的 ASP.NET MVC,但也应该很容易移植到 Web 窗体。

        输出类似:

        <!-- Page generated in 0.4399 s -->
        

        这开始测量HttpContext 的创建时间(根据the documentation),并在写入输出之前停止,因此它应该非常准确。

        它可能不适用于所有用例(如果您想测量子操作或忽略 MVC 操作之外的时间等),但它很容易粘贴到视图中。

        对于更高级的诊断,我曾经使用Glimpse

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多