我想知道什么会导致开始和结束PreRendercomplete事件之间的这种差异,或者我怎样才能找到瓶颈。为什么Begin PreRenderComplete和End 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
我不知道是怎么回事跟踪可能在预渲染完整前夕运行的内容NT。在页面生命周期的这一点上是否还有其他类型的控件或函数?
更多信息
这种延迟的部分似乎与页面上有AJAX控件。我不确定他们为什么在加载时间造成如此大的差距,但他们显然是这样。
我建议你开始禁用页面的不同部分。当你禁用一件消除瓶颈的东西时,至少你会将问题隔离开来。 – 2010-04-09 01:19:31
同时检查正在生成多少ViewState。相对而言,可能需要一段时间才能对其进行加密并创建一个用于验证的HMAC。 – devstuff 2010-04-09 14:03:11