我刚刚在我的一个页面上遇到了性能问题。base.PreRender需要超过 12 秒:
aspx.page Begin PreRender 0.00577958119283298 0.000009
aspx.page End PreRender 12.3006780015036 12.294898
如何诊断在 PreRender 阶段到底发生了什么?起初我认为这是数据库获取的问题,但据我所知,当 PreRender 发生时,所有数据绑定都已完成。
可能是 ViewState 是问题所在吗?
编辑:我已将此诊断代码添加到我的页面:
protected override void OnPreRender(EventArgs e)
{
Trace.Write("OnPreRender", "Start");
base.OnPreRender(e);
Trace.Write("OnPreRender", "End");
}
实际上Trace.Write("End");
line 是立即执行的。这是跟踪输出
aspx.page Begin PreRender 0.233399419245709 0.000010
OnPreRender Start 0.233407218080441 0.000008
OnPreRender End 0.233415320448565 0.000008
aspx.page End PreRender 1.45992676325022 1.226511