加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – PreRenderComplete和SaveState之间的时间差

发布时间:2020-12-16 09:58:31 所属栏目:asp.Net 来源:网络整理
导读:我们正在跟踪我们的ASP.NET应用程序,并发现对于我们的一个页面,我们看到从PreRenderComplete结束到SaveState开始时间约为2.5秒.下面是日志的一部分 aspx.page End PreRender 9.123185387 0.184541 aspx.page开始PreRenderComplete 9.123277718 0.000092 aspx
我们正在跟踪我们的ASP.NET应用程序,并发现对于我们的一个页面,我们看到从PreRenderComplete结束到SaveState开始时间约为2.5秒.下面是日志的一部分

aspx.page End PreRender 9.123185387 0.184541

aspx.page开始PreRenderComplete 9.123277718 0.000092

aspx.page End PreRenderComplete 9.123666575 0.000389

aspx.page开始SaveState 11.77441916 2.650753

aspx.page End SaveState 11.77457158 0.000152

aspx.page开始SaveStateComplete 11.77459695 0.000025

aspx.page End SaveStateComplete 11.77461284 0.000016

aspx.page开头渲染11.77462541 0.000013

aspx.page End Render 15.10157813 3.326953

我们试图了解这背后是否有任何理由.请帮助我理解这一点.

提前致谢

解决方法

根据Reflector,在这两个事件之间发生的唯一事情是构建用于跟踪输出(BuildPageProfileTree)的控制树的一些代码.仅在启用跟踪时才会运行此代码.以下是该页面的ProcessRequestMain例程的相关部分:

if (context.TraceIsEnabled)
{
    this.Trace.Write("aspx.page","End PreRenderComplete");
}
if (context.TraceIsEnabled)
{
    this.BuildPageProfileTree(this.EnableViewState);
    this.Trace.Write("aspx.page","Begin SaveState");
}

所以,具有讽刺意味的是,您在上面看到的减速是由于您正在跟踪您的页面而导致的,如果禁用了跟踪,则不会出现这种情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读