web-dev-qa-db-ja.com

ASP.NET MVCレンダリングが遅いようです

Visual Studioでまったく新しいMVC4 Webアプリケーションを作成しましたが、Homeコントローラーと「Hello world」インデックスビューを追加する以外は何もしませんでした。次に、MiniProfiler NuGetパッケージをインストールし、必要な数行を_Layout.cshtml。これは、リリースモード(IISでホスト)でサイトを実行したときに得られるものです。

MVC rendering picture

レンダリング時間はページの読み込みによって異なりますが、130msは取得とほぼ同じ速度です。他の人が30ミリ秒以上でページをレンダリングするのを見てきたので、これは私には少し遅いようです。新しい空のMVC4プロジェクトでレンダリングがこれほど遅くなる理由はありますか?私のプロセッサはIntel Core i5-2400で、マシンには16GBのRAMが搭載されています。

ちなみに、これはページが最初にロードされるときにnotです。この130msの結果を得る前に、ページを数回リロードしました。

更新:
PSCoderからの回答のアドバイスに従い(RazorViewEngine以外はすべて削除します)、レンダリング時間が半分になりました。

MVC rendering picture 2

これは本当に良いことですが、ページのメインRenderアクションに約70ミリ秒以上かかります。理想的にはそれを半分にしたいです。

具体的には、次の質問をしたいと思います。

  • このレンダリング時間は過度に遅いように見えますか、それとも私のマシンでは平均ですか?
  • スピードアップする方法はありますか?
47
Jez

これは、ASP.NET MVC関連のパフォーマンスの問題を改善するのに役立ちます。実行できるパフォーマンスの改善の1つは、すべてのビューエンジンをクリアし、使用するビューエンジンを追加することです。例:-RazorViewEngine。 MVCはデフォルトでWebformsおよびRazorビューエンジンを2つのビューエンジンに登録するため、単独で使用されるビューエンジンをクリアして追加すると、ルックアップパフォーマンスが向上します。

これはglobal.asaxApplication_Startに追加できます。

        ViewEngines.Engines.Clear();    
        ViewEngines.Engines.Add(new RazorViewEngine());      

ビュールックアップキャッシングを完全に活用して、パフォーマンスを向上させるには、リリースモードでコードをコンパイルし、web.configファイルが<compilation debug="false" />で構成されていることを確認してください。

76
PSL

@PSLの答えに追加する-`.CSHTMLファイルのみをチェックする

ViewEngines.Engines.Clear();

IViewEngine razorEngine = new RazorViewEngine() { FileExtensions = new string[] { "cshtml" } };

ViewEngines.Engines.Add(razorEngine);

また、Release Modeで実行していることを確認してください-ASP/Razor/MVC 'はかなり積極的なキャッシングを適用するため'リリースモードのとき

<compilation targetFramework="4.0" debug="false">ファイルのWeb.Config

Sam Saffron/Stack Overflowは、ビューのレンダリングパフォーマンスも調査しました。

http://samsaffron.com/archive/2011/08/16/Oh+view+where+are+thou+finding+views+in+ASPNET+MVC3+

56
Stuart.Sklinar

ビューは使用する前にコンパイルされます-そのため、最初はビューが遅くなります。

その後、.cshtmlファイルの変更-ビューが格納されているディレクトリが監視されていることを意味します。そのため、ハードディスクの速度がMVCビューの要因になります。

何もしなくても、各レンダリングエンジンは.cshtmlまたは.aspxファイル。レンダリングエンジンを削除すると2倍の速度で実行されるため、ディスク速度が問題であると思われます。

  • ビューがネットワークドライブに保存されている、または
  • ハードディスクが非常に遅い
0
user1023602