asp.net MVC4使用EF6的应用程序需要很长时间才能完成初始" Cold"加载

时间:2015-03-12 16:08:17

标签: c# asp.net performance asp.net-mvc-4 entity-framework-6

我非常了解asp.net MVC4并使用EF6创建了一个大型Web应用程序。我正在使用的页面似乎需要很长时间才能进行初始加载,但在第一次初始“冷”加载后会加速。

在阅读本文的基础上,https://msdn.microsoft.com/en-us/data/hh949853.aspx即使在最初的第一次“冷”负载下,我一直在努力提高性能。但是,如果有人对我可以做些什么有任何其他想法来改善表现时间会很好,(我正处于紧张状态)。

数据库相当复杂,并且有很多表和关系。我在调试时已经介入,但是在我的索引函数甚至在我的控制器中被击中之前花了很大一部分时间,我假设这是因为实体框架映射数据库?任何使初始加载时间减少的帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

根据我的经验,这个问题在前EF6应用程序中的客户端数据库连接应用程序(Windows窗体,WPF)中特别有害,因为启动时间很有趣。预热时间似乎是模型大小(单个ObjectContext / DbContext中的实体/关系数)的指数。我认为最重要的改进是:

  • 关注this guide为您的模型创建预生成的视图。
  • 缩小模型大小,我假设模型中有100多个实体。如果可能,将模型拆分为多个模型(您可能必须切断一个或多个强类型FK关系)。这大大减少了预热时间,但是所需的开发工作量非常大。

请注意,只要应用程序不会一直被杀死,预热时间就可能不值得为Web应用程序投资。