2009-08-24 19 views
2

asp.net mvcアプリケーションで、多くの部分ビューとhtmlヘルパーを使用することでどれくらいのパフォーマンスを失うのだろうかと思っています。asp.net mvc(部分的なビューとhtmlヘルパー)のパフォーマンスに関する質問

私はhtmlヘルパーが軽量であることを知っていますが、まっすぐにhtmlを作成した場合と同じくらい速くレンダリングすることはできません。

私が間違ってはいけない私は彼らを愛していますが、あなたのサイトにどれだけ影響を与えるのか不思議です。私はあまり推測していないが、これらのHTMLヘルパーのいくつかは複雑になり、かなりのことをすることができます。

また、サイトの多くの部分で基本的に同じコードが必要なので部分ビューを使用するのが好きなので、重複したコードを削除して部分的なビューに入れたいかもしれません。

パーシャルビューにはどの程度のパフォーマンスへの影響がありますか?

答えて

2

私はこれを裏付ける証拠はありませんが、ほとんど何も仮定しません。特にHTMLヘルパーのために - ちょうど余分なメソッド呼び出し。ヘルパーのコードをコピーしてViewに貼り付けるだけで、スタック上にメソッドを1つ少なくすることができました。

1

サーバーハードウェアとネットワークのインフラストラクチャは、HTMLヘルパーや部分的なビューよりも制限要因になります。それについて考えないでください。

0

これは早すぎる最適化です。まずそれを書いてからプロファイルし、パフォーマンスが要件/ SLAを満たしていない場合は、プロファイリングツールを使用してパフォーマンスの低いコードを探します。おそらくhtmlヘルパーメソッドではなく、データベース呼び出しや他のクロスプロセス呼び出しのようなものになるでしょう。

+0

良いプロファイルツールはありますか?私は1つを必要とすることから遠く離れていますが、これはどれくらいの量を使うかを知るための好奇心でした。私は問題が彼らから来ることを疑う。 – chobo2

+0

私が使ったのは、RedgateのANTS Profilerだけです。それはかなりうまくいく。 –

2

ほとんどの場合、オーバーヘッドがほとんどなく、いずれかを避けるために時期尚早の最適化になると私は一般的に同意します。 ASP.NETコンパイラはデバッグモードのみでをコンパイルするとき非常に遅くなりますパーシャルビューの多くを使用して

  • :しかし、2つの重要なあなたが知っておくべき例外があります。デバッグモードでは、MVCはファイルの場所をキャッシュしないため、ビューをレンダリングするたびにプローブする必要があります。だまされてはいけません!この問題は、リリースモードではなくなります。 MVC 1.0のためのMVC先物のアセンブリで

  • 、System.Web.Mvcアセンブリにおけるヘルパーより(1)について10倍遅いとされているいくつかの「強く型付けされた」HTMLヘルパーはおそらく、(2)がありますMVC 2に入っている "強く型付けされた"ヘルパーと(おそらくパフォーマンスPOVから改良された)おそらく改善されています。

しかし、一般的に、私は同意する:プロファイル、その後、最初の正しいコードを記述します。

関連する問題