服务FilePath而不是View的性能分支

时间:2016-05-23 17:06:23

标签: asp.net-mvc performance

如果提供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 个答案:

答案 0 :(得分:-1)

查看FilePathResult的{​​{3}},您可以看到它最终会降至source codeWriteStreamAsText。很明显,没有神奇的调用IIS,例如直接处理文件而没有任何.Net代码发生。

话虽如此,我仍然期望这比运行视图要快一些,可能需要解释和执行。