【问题标题】:Time lag between PreRenderComplete and SaveStatePreRenderComplete 和 SaveState 之间的时间延迟
【发布时间】:2010-08-05 15:00:40
【问题描述】:

我们正在跟踪我们的 ASP.NET 应用程序,并发现对于我们的一个页面,我们看到从 PreRenderComplete 结束到 SaveState 开始有大约 2.5 秒的时间延迟。以下是部分日志

aspx.page End PreRender 9.123185387 0.184541

aspx.page Begin 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 Begin SaveStateComplete 11.77459695 0.000025

aspx.page End SaveStateComplete 11.77461284 0.000016

aspx.page 开始渲染 11.77462541 0.000013

aspx.page 结束渲染 15.10157813 3.326953

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

提前致谢

【问题讨论】:

    标签: asp.net savestate


    【解决方案1】:

    根据 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");
    }
    

    因此,具有讽刺意味的是,您在上面看到的速度变慢是由于您正在跟踪您的页面这一事实造成的,如果禁用跟踪,则不会出现。

    【讨论】:

    • 不错。谢谢,这困扰了我一整天:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2018-06-21
    相关资源
    最近更新 更多