Visual Studioでまったく新しいMVC4 Webアプリケーションを作成しましたが、Homeコントローラーと「Hello world」インデックスビューを追加する以外は何もしませんでした。次に、MiniProfiler NuGetパッケージをインストールし、必要な数行を_Layout.cshtml
。これは、リリースモード(IISでホスト)でサイトを実行したときに得られるものです。
レンダリング時間はページの読み込みによって異なりますが、130msは取得とほぼ同じ速度です。他の人が30ミリ秒以上でページをレンダリングするのを見てきたので、これは私には少し遅いようです。新しい空のMVC4プロジェクトでレンダリングがこれほど遅くなる理由はありますか?私のプロセッサはIntel Core i5-2400で、マシンには16GBのRAMが搭載されています。
ちなみに、これはページが最初にロードされるときにnotです。この130msの結果を得る前に、ページを数回リロードしました。
更新:
PSCoderからの回答のアドバイスに従い(RazorViewEngine以外はすべて削除します)、レンダリング時間が半分になりました。
これは本当に良いことですが、ページのメインRender
アクションに約70ミリ秒以上かかります。理想的にはそれを半分にしたいです。
具体的には、次の質問をしたいと思います。
これは、ASP.NET MVC関連のパフォーマンスの問題を改善するのに役立ちます。実行できるパフォーマンスの改善の1つは、すべてのビューエンジンをクリアし、使用するビューエンジンを追加することです。例:-RazorViewEngine
。 MVCはデフォルトでWebforms
およびRazor
ビューエンジンを2つのビューエンジンに登録するため、単独で使用されるビューエンジンをクリアして追加すると、ルックアップパフォーマンスが向上します。
これはglobal.asax
Application_Start
に追加できます。
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine());
ビュールックアップキャッシングを完全に活用して、パフォーマンスを向上させるには、リリースモードでコードをコンパイルし、web.config
ファイルが<compilation debug="false" />
で構成されていることを確認してください。
@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+
ビューは使用する前にコンパイルされます-そのため、最初はビューが遅くなります。
その後、.cshtml
ファイルの変更-ビューが格納されているディレクトリが監視されていることを意味します。そのため、ハードディスクの速度がMVCビューの要因になります。
何もしなくても、各レンダリングエンジンは.cshtml
または.aspx
ファイル。レンダリングエンジンを削除すると2倍の速度で実行されるため、ディスク速度が問題であると思われます。