誰もがどれがより速く動作するか知っていますか?
2 に答える
答えは、ビューページをどこからロードするかによって異なります。
テンプレート化されたヘルパーは、ビューオーバーライドがない場合、HTML出力を生成するために舞台裏で文字列を操作しているため、わずかなエッジがあります。
入力ビルダーは、埋め込みリソースまたは従来のファイルシステムを介してビューをロードします。従来のファイルシステムは、ハードコードされた文字列操作よりも常にわずかに遅くなります。
両方のコードは類似しており、基本的に同じ量のリフレクションとメタデータ処理を実行します。ファイルやリソースの読み込みに問題がなければ、どちらも1ミリ秒未満で実行されます。組み込みリソースまたはファイルシステムコールを介してカスタマイズされたテンプレートソーシングを使用すると、パフォーマンスの低下は両方で同じになります。
入力ビルダーの埋め込みリソースは、WebFormViewエンジンを介して提供されます。Webconfigでアプリケーションがdebug=falseに設定されている場合、ビューエンジンはビューをキャッシュするため、アセンブリから1回だけロードされます。入力ビルダーが少し遅くなる本当の理由は、マスターページを使用して維持するHTMLを減らすためです。たとえば、エディタテンプレートは入力を生成します。同等の入力ビルダーは、ラベル、入力、および2つの周りのhtml'chrome "を生成するため、一度指定して、入力ビルダーを使用するすべてのフォームに適用できます。入力ビルダーは、実際には次の規則を適用するためのものです。フォームのマークアップがどのように構築され、それがあなたに制御を与えるだけでなく、あなたのhtmlフラグメントを「DRY」に保つ方法でそれを行います(あなた自身を繰り返さないでください)。
すべてのように、トレードオフがあります。入力ビルダーの場合、実行時のパフォーマンスと開発者の生産性をトレードオフします。結局のところ、公開Webサイトに優れたパフォーマンスのフォームが必要な場合は、MVCアクションに投稿する静的なhtmlファイルをサーバーに保存するのが最善の方法です。