我想开始一个大项目。我研究了LINQ到EF和NHibernate的性能问题。我想在我的项目中使用其中一个作为ORM。现在我的问题是,这两个ORM中的哪一个可以让我在我的项目中获得更好的表现?我将使用SQL Server 2008作为数据库,使用C#作为编程语言。
答案 0 :(得分:4)
两者都没有“更好的表现。”
在分析性能时,您需要查看限制因素。在这种情况下,限制因素不是您选择的ORM,而是您如何使用该工具,如何编写查询以及如何优化数据库后端。
因此,“最快”的ORM将是您可以正确使用的ORM,再加上您最了解的数据库服务器。
ORM本身确实有一定的开销,因此就纯粹的性能而言,“最快”是根本不使用。但是,这有利于计算机在开发时的时间,这通常不是一个很好的权衡。 ORM可以节省大量的开发时间,而正确使用时只需要很小的开销。
通常,当人们在使用ORM时遇到性能问题时,这是因为他们错误地使用了ORM,而不是因为他们选择了“错误的”ORM。
答案 1 :(得分:3)
我们目前正在我们的一个项目上使用Fluent NHibernate(使用Web服务,这会增加额外的时间延迟),据我所知,数据访问非常即时(从人的角度来看)。
虽然有人可以用具体数字提供答案。
由于这两个ORM有些不同,最好根据您的具体需求决定使用哪个ORM,而不是性能(就像我说的那样,这应该不是什么大问题。)< / p>
答案 2 :(得分:1)
这是一个不错的benchmark。您可以看到结果取决于您是在执行SELECT
,UPDATE
,DELETE
。