1

ページの 1 つでパフォーマンスの問題が発生しました。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
4

1 に答える 1

3

runat="server"ページ上にタグが付いている各WebコントロールにOnPreRender()は、page.aspxとは独立して呼び出されるメソッドもありOnPreRender()ます。ページにカスタムコントロールがある場合は、同じ診断コードをOnPreRender()メソッド内に配置して、さらに障害を見つける価値があるかもしれません。

(これを答えとして書いて申し訳ありません-コメントするのに十分な担当者がまだいません!)

于 2012-09-07T13:48:17.310 に答える