我刚在我的一个页面上遇到了性能问题。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");行是立即执行的。这是跟踪输出
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发布于 2012-09-07 13:48:17
页面上有一个runat="server"标记的每个web控件还将有一个独立于page.aspx OnPreRender()调用的OnPreRender()方法。如果页面上有任何自定义控件,那么可能值得在它们的OnPreRender()方法中放置相同的诊断代码来进行进一步的故障查找。
(很抱歉把这写成回答--还没有足够的代表发表评论!)
https://stackoverflow.com/questions/12316733
复制相似问题