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