2012-09-07 5 views
1

방금 ​​내 페이지 중 하나에서 성능 문제가 발생했습니다. base.PreRender 더 다음 12초을 취PreRender 단계가 매우 느림

aspx.page Begin PreRender 0.00577958119283298 0.000009 
aspx.page End PreRender 12.3006780015036 12.294898 

가 어떻게 그것이 정확히 사전 렌더링 단계에서 일어나고 진단 할 수 있습니다? 처음에는 데이터베이스 페칭에 문제가 있다고 생각했지만, 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 
+0

이 페이지는 무엇을하고 있는가? – Paddy

+0

요컨대 : IEnumerable 을 GridView에 바인딩. 그냥 데이터를 표시합니다. – dragonfly

+0

viewstate가 문제 일 수 있다고 생각한다면 사용하지 않도록 설정하고 더 잘 작동하는지 확인해 보았습니까? – Chris

답변

3

또한 page.aspx OnPreRender() 독립적으로 호출되는 OnPreRender() 방법이있을 것이다 페이지에 runat="server" 태그 각 웹 컨트롤입니다. 페이지에 사용자 지정 컨트롤이있는 경우 해당 오류 코드를 찾으려면 해당 진단 코드를 OnPreRender() 메서드에 넣는 것이 좋습니다.

(대답으로이 글을 쓰는 죄송합니다 - 아직 의견을 충분히 담당자 없어!)

+1

사과 할 필요가 없습니다를 호출했다 ... 해답 인 것처럼 보인다과 의견에 속하지한다 어쨌든. – bytebender