如果提供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必须执行类似的操作吗?
注意:如果我要添加它们,请建议其他任何标签
答案 0 :(得分:-1)
查看FilePathResult
的{{3}},您可以看到它最终会降至source code的WriteStreamAsText
。很明显,没有神奇的调用IIS,例如直接处理文件而没有任何.Net代码发生。
话虽如此,我仍然期望这比运行视图要快一些,可能需要解释和执行。