質問

重要なアップデート:下部の更新 5 を参照してください。asp.net mvc 3 にはパフォーマンスの問題はありません。これはベンチマークの問題です。

asp.net mvc2、3 aspx、および 3 razor で簡単な hello world プロジェクトを作成し、ベンチマークを実行しました。私が見ているのは次のとおりです。

System                  Requests per second
-------------------------------------------
asp.net mvc 2 ASPX                     4200
asp.net mvc 3 Beta 1 ASPX              3200
asp.net mvc 3 Beta 1 Razor             1700

カミソリの何が問題なの、そんなに遅いの?

アップデート:テストをやり直しました。4 つのテスト仮想ディレクトリはすべて、同じ .net 4 統合モード アプリ プールを使用します。すべてのプロジェクトは、新しい空の x プロジェクトを追加し、コードなしで 1 行のテキストを含む 1 ページを追加することで完了します。すべてのサイトはリリース モードでコンパイルされます。私のシステムはWindows 7、4 GB i7 4コアです。IIS をウォームアップするためにテストを 2 回実行しました。これらは 2 回目の実行結果です。Apacheベンチパラメータ:AB -N100000 -C1000結果:

System         Requests per second   CPU Utilization
----------------------------------------------------
asp.net 4                     4780               43%
mcv 2                         4322               58%
mvc 3 beta 1 aspx             2324               54%
mvc 3 beta 1 razor            1615               54%

アップデート 2 スコット・ガスリーは自身のブログで次のように答えている。

MVC3 はまだ完全には最適化されていません (通常、キャッシュのチューニングは頻繁に行われます)。最終的にリリースされるまで、Razor は .aspx ビュー エンジンと同じパフォーマンスになると予想されます。

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc1 razor               1960               54%
mvc 3 rc2 razor               2187               54%
mvc 3 rc2 aspx                4014               58%

アップデート5 すべてのテストはリリースモードで行われましたが、問題は debug="true" 私の web.config ファイル (リリース ビルドにも影響します) を false に変更すると、問題が修正されました。そして、この規模でかみそりのテンプレートのみにどのように影響するかは興味深いです。導入時にはこれを念頭に置く必要があります。

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc2 razor               3940               58%
mvc 3 rc2 aspx                4100               58%

asp.net mvc チームに感謝します。素晴らしい仕事です。

役に立ちましたか?

解決

(RC2 番号に応答するための新しい回答)

最新の数値をありがとうございます。いくつかのポイント:

  1. MVC3 Aspx が MVC2 Aspx と同等であることが期待されるという意味で、Aspx 数値は良好に見えます (このような Hello World の例では少し遅くなることが予想されます)
  2. Razor の数値が疑わしいようです。Razor は同等の Aspx よりも少し遅いことがわかっていますが、その差は 5% ~ 7% を超えてはなりません。数字は 50% 遅いことを示していますが、これは単に私たちの結果と一致しません。プロジェクトがリリースでコンパイルされているかどうかを確認してください。 debug="false" web.configで設定します。
  3. CPU 使用率が少し疑わしいです。同時リクエストが 1000 件の場合、CPU は 100% 使用されるはずです。(仮想コアが 8 つあるため、同時リクエストが 8 つだけでも十分です)
  4. テストは約 20 ~ 25 秒間実行されます。システム内の他の場所でアクティビティが短期間 (1 ~ 2 秒) バーストすると、結果が大幅に狂う可能性があるため、この値は少し低いほうです。
  5. ポイント 4 に関連しますが、各シナリオを 1 回または数回実行しましたか?結果に大きな差異が見られますか?OS はバックグラウンドで他のことを実行しているため、実行ごとに異なる結果が表示されるのが一般的です。

他のヒント

ベンチマークはどのように実行しましたか?サイトはリリース モードで IIS にデプロイされましたか?を使用しましたか <deployment retail="true" /> machine.config のセクション?また、ASP.NET MVC 3 はまだ開発中であるため、完全に最適化されることは期待できないことにも注意してください。少なくともRTMに達するまで待ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top