之前的测试请看这里。
更新的测试代码到这里下载: https://github.com/DevExpress/XpoNetCoreDemos/tree/master/ORMBenchmark
我们测试的ORM
库是下面几个,测试环境要求.NET Framework 4.6.1
或更高。
Fetch
, LinqQuery
, InstantiationNative
和其他类测试中改用AsNoTracking
,数据读取时间略有下降,但没有显著下降。AsNoTracking
,我们创建一个额外的ProjectionLinq基准测试演示每个ORM 加载没有跟踪变化的对象需要花多少时间。IdentityMapBehavior
选择到Strong
,它信息我们减少在Identity Map
中加载对象的时间。InstantiationLinq
和LinqTakeRecords
)现在更加精确。根据Neal的评论,在Fetch
基准测试中,我们还使用了Find
方法代替First
,在某些情况下,它表现出较低的性能,也不影响结果,因此,我们没有改变基准。
所有的基准测试在.NET 4.6.1, AnyCPU release builds, Windows 10 Enterprise x64, local Microsoft SQL Server 2016 Developer Edition, i7-7700 CPU @3.6GHz / 16GB RAM / SSD 上执行。DevExpress.Xpo和其他参考库自动从Nuget上获取。测试时你可能需要编辑App.config中的连接串,更新ORM库或者目标框架。