无论如何都要运行应用程序并预先填充MVC ViewCache以消除在Web应用程序预热期间有时会发生的2秒时间损失?
当我们的应用程序启动时,我们有时会遇到2秒的性能延迟时间......一旦启动它只有毫秒。
如果它有帮助,我肯定在发布模式下运行,并且只使用Razor引擎:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
Bootstrapper.Initialise(); //IOC Setup
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
//Only use the RazorEngine. - http://blogs.msdn.com/b/marcinon/archive/2011/08/16/optimizing-mvc-view-lookup-performance.aspx
ViewEngines.Engines.Clear();
IViewEngine razorEngine = new RazorViewEngine() { FileExtensions = new string[] { "cshtml" } };
ViewEngines.Engines.Add(razorEngine);
}
欢迎任何建议。
TA
答案 0 :(得分:2)
您可以在IIS 7.5中使用新的ASP.NET AutoStart feature。还要确保在部署应用程序时它正在发布模式(debug="false"
)中运行。
答案 1 :(得分:1)
Dave Ward在A harsh reminder about the importance of debug=”false”的web.config中讨论了与debug =“false”相关的这个问题和其他问题。
在调试模式下,视图分辨率已经过优化,易于开发。 MVC每次都会遍历视图解析过程 您的代码呈现命名视图。这显然很有用,因为你很明显 希望环境立即响应您的更改 你在网站上工作。
然而,在发布模式下,MVC的视图分辨率已经过优化 性能。在发布中成功解析视图位置时 模式,MVC缓存该查找的结果,不需要执行 当遇到对该命名的引用时,另一个文件系统搜索 再看一遍。