【问题标题】:Why is there a large gap between Begin PreRenderComplete and End PreRenderComplete events?为什么 Begin PreRenderComplete 和 End PreRenderComplete 事件之间有很大的差距?
【发布时间】:2010-04-09 21:59:04
【问题描述】:

我想知道是什么导致了开始和结束 PreRendercomplete 事件之间的这种差异,或者我想知道如何定位瓶颈。

aspx.page   End PreRender   0.193179639923915   0.001543
aspx.page   Begin PreRenderComplete 0.193206263076064   0.000027
aspx.page   End PreRenderComplete   1.96926008935549    1.776054
aspx.page   Begin SaveState 2.13108461902679    0.161825

编辑

这里是有关生成的跟踪的更多详细信息

aspx.page   Begin PreRenderComplete 0.200593573416824   0.000028
PR-S                                0.200606270612464   0.000013
PR-complete                         0.200622654090709   0.000016
PR-E                                1.97799207367323    1.777369
aspx.page   End PreRenderComplete   1.97805105419491    0.000059
aspx.page   Begin SaveState         2.11171607104531    0.133665

后面的代码:

Private Sub _Default6_PreRenderComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRenderComplete
    Trace.Write("PR-complete")
End Sub
Protected Overrides Sub OnPreRenderComplete(ByVal e As System.EventArgs)
    Trace.Write("PR-S")
    MyBase.OnPreRenderComplete(e)
    Trace.Write("PR-E")
End Sub

我不确定如何跟踪预渲染完成事件中可能正在运行的内容。在页面生命周期的这一点上是否有任何其他类型的控件或函数在运行?

更多信息

此延迟的一部分似乎与页面上的 ajax 控件有关。我不确定为什么它们会在加载时间上造成如此大的差距,但显然它们确实如此。

【问题讨论】:

  • 我建议您开始禁用页面的不同部分。当您禁用一个消除瓶颈的部分时,至少您将隔离问题。
  • 同时检查生成了多少 ViewState。加密并创建 HMAC 进行验证可能需要一段时间(相对而言)。

标签: asp.net performance events prerender


【解决方案1】:

我必须抛弃经过验证的真实答案。配置文件配置文件。这应该会为您提供查看进程锁定位置所需的所有信息。

【讨论】:

  • 标记为正确,因为在一天结束时,虽然仍然不知道是什么原因造成的,而且我有很多经验分析,我会说这确实是唯一的解决方案即使它可能无法解决问题。
【解决方案2】:

您可能有一个附加到 PreRenderComplete 事件的事件处理程序,该事件需要很长时间。我将首先在您的代码中搜索对PreRenderComplete 的引用,然后从那里开始。

【讨论】:

  • 据我所知,我无法绑定到 prerendercomplete 事件,所以这不会导致问题。
  • PreRenderComplete 事件在页面本身可用:用户控件等无法绑定到它,但您可以在页面本身绑定到它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-12
  • 2014-08-31
  • 1970-01-01
  • 2011-09-09
相关资源
最近更新 更多