完了までに2000ミリ秒かかる.net MVCアクションがあります。 IE DevツールのNetworkタブのGlimpseに2000msが記録されています.HttpModuleを使用してcontext_BeginRequestとcontext_EndRequestの差を計算すると、メソッド自体が高速であるときにMVCアクションが戻るまでに時間がかかります
しかし、アクションメソッド自体のタイミングを記録すると、アクションの最初の行から最後の行までの時間はわずか300msです。 コードの私の最後の行には、ビューを生成し、その後、私は時間を記録し、その後、私はビューを返します - それも、ビューの生成が300ミリ秒以内であることを思わ:
var view = View("~/Views/Home/Index.cshtml");
LogMethodTime("HomeController.Index", stopwatch);
return view;
私は時に関連する時間を記録していますコントローラのメソッドが完了している - そして、彼らはコンストラクタからEndExecuteまでの時間が534msだけを取ることを示しています
14:40:26,554 [13] INFO - Constructor
14:40:26,561 [13] INFO - OnAuthentication
14:40:26,608 [13] INFO - OnAuthentication
14:40:26,988 [13] INFO - OnActionExecuted
14:40:27,024 [13] INFO - OnResultExecuted
14:40:27,044 [13] INFO - EndExecuteCore
14:40:27,088 [13] INFO - EndExecute
asp.netパイプラインで1700msを嚥下することができ他に何してください?
私はこれをIISExpress経由でローカルに実行しています。
あなたはグリンプスを使用して、データの時間とワイヤ時間をもたらし、ビューをレンダリングするための時間を見ることができます。私はあなたがここでGlimpseについて何かを指定したのを見ました。あなたの行動のためのワイヤータイムとは何ですか? –
'var view = View("〜/ Views/Home/Index.cshtml ");'はビューを生成しません "。これは、* "ExecuteResult"が呼び出されたときに、* "ビューをレンダリングするために使われるクラス" *を返します。だから、それは時間を取っているビューレンダリングかもしれません。(すなわち、コントローラが 'ViewResult'を返した後の時点にビューレンダリングが延期されます) –
ありがとうございます。 ExecuteResultについてのあなたの提案を反映するために上記の詳細を編集しました。だからonResultExecutedはそれを含んでいたでしょう。それでもコンストラクタのロギングは1500msを考慮していません –