微软宣布Entity Framework 5的性能有了显著提升
fmms 13年前
<p> 根据 <a href="/misc/goto?guid=4958330121002755732">ADO.NET 团队博客</a>上的介绍,使用这个版本 EF 的应用程序之所以性能提升,要部分归功于 LINQ to Entities 查询的自动编译。自动编译功能一直都是 EF 框架中的一部分,只是需要开发人员调用 CompiledQuery.Compile 才能够使用。现在,EF 5 会自动处理这步工作:当某个查询首次运行时,它会被编译并缓存,从而使得后续请求可以避免重新完全编译。</p> <blockquote> EF 4 为 ESQL(嵌入式 SQL)查询使用了编译后的查询缓存,而 EF 5 将该功能扩展到了 LINQ to Entity 查询中。一旦缓冲中超过 800 个编译后的查询,某个回收算法将开始生效并以每分钟一次的周期清理缓存。 实体依据 LFRU(最近最早使用)原理从缓存中移除。 </blockquote> <p> 使用编译后的 LINQ to SQL 查询同样能够提升性能。ADO.NET 团队提到在他们的内部测试中,通过对查询参数评估方式的一些改动带来了 600% 的性能提升。</p> <p> 尽管<a href="/misc/goto?guid=4958199587429767790">.NET 交付和 EF 的发布</a>两者之间相互独立,它们还是公用了一些核心库,包括 System.Data.Entity.dll、System.Data.Entity.Design.dll 和 System.Web.Entity.dll。这样的好处在于使用 EF 4.0 的开发人员只要升级到<a href="/misc/goto?guid=4958330122539593218">.NET 框架4.5</a>,就应当可以体验到性能的提升。</p> <p> 由于 EF5 中的某些新特性(如枚举支持以及空间数据类型)依赖于 .NET 框架4.5中的功能,因此在 .NET 4.5 发布之前没有太多指望能使用到它们。此外,微软在本月初<a href="/misc/goto?guid=4958330123337623595">宣布推出了 EF4.3</a>。</p> <p> 查看英文原文:<a href="/misc/goto?guid=4958330124143020222">Microsoft Reports Significant Performance Improvements in Entity Framework 5</a></p> <div id="come_from"> 来自: <a id="link_source2" href="/misc/goto?guid=4958330124940715375" target="_blank">InfoQ</a> </div>