首页 > 其他 > 详细

EF第一次加载慢或过一段时间不访问时再次访问加载慢问题

时间:2019-10-17 16:54:29      阅读:223      评论:0      收藏:0      [点我收藏+]

优化方案:

  1. EF Pre-Generated Mapping Views(预生成映射视图)

         在应用程序初始化时一次性触发所有的DbContext进行mapping views的生成操作——调用StorageMappingItemCollection的GenerateViews()方法

        Application_Start加入下面代码

using (var dbcontext = new CnblogsDbContext())
{
  var objectContext = ((IObjectContextAdapter)dbcontext).ObjectContext;
  var mappingCollection = (StorageMappingItemCollection)objectContext.MetadataWorkspace.GetItemCollection(DataSpace.CSSpace);
  mappingCollection.GenerateViews(new List<EdmSchemaError>());
}
 

   2.安装Application Initialization

   3.用Ngen安装生成EF的本地镜像

 由于C#是使用实时 (JIT) 编译器编译原始程序集。因此第一次运行C#程序(或Dll)时,程序的启动非常慢。为了提高用户的体验,可以用Microsoft的供的本机映像生成器 (Ngen.exe) 提高程序的性能。Ngen.exe 创建本机映像(包含经编译的特定于处理器的机器代码的文件),并将它们安装到本地计算机上的本机映像缓存中。运行库可从缓存中使用本机映像,而不是使用实时 (JIT) 编译器编译原始程序集。

1)在命令行中定位到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727。因为Ngen.exe存放在这里,如果不定位,Ngen.exe无法正确定执行。

cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

2)生成本机本机映像。

ngen install D:\SystemTool\ManagerNote.dll   (备注:Dll方式)

 ngen install D:\SystemTool\ManagerNote.exe  (备注:exe方式)

3)卸载本机本机映像,请使用与安装时相同的命令行选项。

ngen uninstall D:\SystemTool\ManagerNote.dll

注意:这里根据你自己机器(是32还是64)和.net版本,选择相应的命令,只需要安装EntityFramework.SqlServer.dll

4.iis设置 闲置超时(时间)

 

 

 

因为安依赖EntityFramework.dll,会自动安装生成EntityFramework.dll的本地镜像。

 

EF第一次加载慢或过一段时间不访问时再次访问加载慢问题

原文:https://www.cnblogs.com/56982173513871739239lex/p/10772738.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!