2017-02-03 46 views
-3

ビューをコントローラアクションに戻す最適な方法は何ですか?などのパフォーマンス、テストの容易性、最適化の観点どのような方法でビューを返すのがパフォーマンス上のベストな方法ですか?

return View(); 

または

return View("[ActionName]"); 

、その後

return View([model]); 

return View("[ActionName]",[model]); 
+1

StackOverflowはアドバイスフォーラムではありません。ここで何を達成しようとしていますか?パフォーマンスと関係があるように、自分でテストしてください。重要な違いがあるかどうかを確認するためにコードをプロファイルします。 – Soviut

+3

私は本当に疑問があります。 – Amy

+1

違いがあっても、その差は要求実行時間の合計よりもわずかに小さいでしょう。必要な最も単純な過負荷を使用してください。 – Phil1970

答えて

1

にだから私は実行しました小さなベンチマークとこれは私が得ているものです:

readonly Stopwatch sw = new Stopwatch(); 

    public void Benchmark() 
    { 
     var t1 = Test(View); 
     var t2 = Test(() => View("[ActionName]")); 
     var t4 = Test(() => View(new Model())); 
     var t3 = Test(() => View("[ActionName]", new Model())); 

     string result = $"{t1} - {t2} - {t3} - {t4}"; 
     //Results: 
     //4466 - 4856 - 6969 - 6977 
     //4551 - 4986 - 7070 - 7056 
     //5181 - 5263 - 7142 - 7864 

    } 

    public long Test(Func<ViewResult> f) 
    { 
     sw.Start(); 
     for (int i = 0; i < 100000000; i++) 
     { var x = f(); } 

     sw.Stop(); 
     long t = sw.ElapsedMilliseconds; 
     sw.Reset(); 
     return t; 
    } 

したがって、最初の2つは少し速く見えます...しかし、その違いは重要ではありません。どんな方法であれ、あなたに最適な方法を使用してください。

関連する問題