我正在开发基于Umbraco CMS(Asp.Net Mvc 5)的Web应用程序。
我的项目中的典型视图包含几个不同的局部视图。 不幸的是,我注意到第一次请求到任何具有任何独特局部视图的页面(之前没有编译过)需要花费太多时间。
我测量了 IView.Render 方法执行时间,它运行~4秒。 经过一些深度调试后,我发现无论视图内容如何(我甚至尝试使用空视图),编译时间直接取决于"引用的程序集"项目编号。
在我的项目中,我有大约120个引用的程序集,这就是 CodeDomProvider.CompileAssemblyFromFile (负责视图编译的方法)为任何视图执行~4秒的原因。
如果没有mvc视图预编译,我有没有机会解决这个问题?
我尝试过RazorGenerator库,它可以快速编译我的所有视图,但我不想放弃动态编译的好处。
MVC是否使用一些非最佳算法进行编译(RazorGenerator编译得更快)?
在我的情况下,无法减少引用的程序集数量。