Html.RenderPartial很慢

LIN*_*dka 5 .net asp.net-mvc razor

我们的网络应用程序包含数十个部分视图,其中一些是其他人的孩子.我们注意到应用程序在第一次加载时变慢,需要0.5到1秒来初始化它第一次调用的每个视图.我追踪时间并发现了这个:

Html.RenderPartial("~/Full/Relative/Path/To/View.cshtml", null);  
Run Code Online (Sandbox Code Playgroud)

即使视图绝对是空的,也可能需要大约1秒钟.同时这个:

var view = ViewEngines.Engines.FindPartialView(
ViewContext.Controller.ControllerContext, "~/Full/Relative/Path/To/View.cshtml");
Run Code Online (Sandbox Code Playgroud)

需要1毫秒,所以没有时间花在寻找文件上.
问题:
1.视图编译器花费这么长时间是正常的吗?
2.还有其他方法可以使第一次调用快速但没有在csproj中使用指令预编译视图吗?

ps:奇怪的是,在应用程序开发开始时,相同的视图加载速度更快.

Gon*_*ing 7

您看到的延迟完全取决于首次使用视图的初始编译.速度将降至服务器(处理器和驱动器速度,内存,使用情况等).

您要么使用它,要么将项目设置为预编译视图以避免在运行时进行编译.