2016-05-23 2 views
0

FilePathResultではなく、ビューを提供する任意の(私たちはヘッドレスブラウザを使用して、ウェブサイトのサーバーにキャッシュされたコピーを作成した場合)パフォーマンス波及効果ではなく、ビュー

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var url = Request.RawUrl.Replace("/", "_"); 
     var path = System.Configuration.ConfigurationManager.AppSettings["PreloadPath"] + "\\" + url + ".html"; 
     if (System.IO.File.Exists(path)) 
     { 
      return new FilePathResult(path, "text/html"); 
     } 
     else 
     { 
      return View("Index"); 
     } 
    } 
} 

我々は次の場合にパフォーマンスの波及効果は何ですか要求ごとにAppSettingsにアクセスしなければならない場合は、ファイルシステムを使用してファイルが存在するかどうかを確認し、そのhtmlファイルを提供してください。ただ

return View("Index"); 

と比較してあるような費用

は、ファイルへのアクセスは、サーバー上の任意のコストを持っていますか?あるいは、私はナンセンスな話をしていますが、IISは同様のアクションを実行する必要がありますか?

注:私は

答えて

-1

は、あなたが最後にそれがダウンしてHttpResponseWriteStreamAsTextになっていることがわかりますsource codeFilePathResultさんを見て、それらを追加する必要がある場合は、他のタグを提案してください。たとえば、.Netコードがなくても直接ファイルを処理するなど、IISへの魔法の呼び出しはないことは明らかです。

これはまだ私がビューを実行するよりもやや速いと言いましたが、には解釈と実行が必要です。

+0

ビューは必ずしも解釈と実行を必要としません。ビューはアセンブリにコンパイルされ、そのコードが実行されます。ビューにあるコードに応じて、ファイルを表示するよりも高速である場合とそうでない場合があります。 – casperOne

+0

本当にあなたは正しいです、私はそれを表現しながら少し急いでいました。彼らはまだ実行される必要があり、アセンブリされていない場合はコンパイルされている可能性があります。 – kagelos

+0

@casperOneしかし、ビューではHTMLコンテンツも生成されるので、平均的な場合にはその前にいくつかの作業を行い、最終的にはFilePathResultのようなコンテンツを提供するので、やや遅くなると予想しています。 – kagelos

関連する問題