Какой из них может иметь лучшую производительность - LINQ to EF или NHibernate? - PullRequest
4 голосов
/ 13 апреля 2010

Я хочу начать работать над большим проектом. Я исследую проблемы производительности LINQ to EF и NHibernate. Я хочу использовать один из них в качестве ORM в моем проекте. теперь мой вопрос заключается в том, какой из этих двух ORM может дать мне лучшую производительность в моем проекте? Я буду использовать SQL Server 2008 в качестве базы данных и C # в качестве языка программирования.

Ответы [ 3 ]

4 голосов
/ 13 апреля 2010

Ни у кого не будет "лучшей производительности".

При анализе производительности необходимо учитывать ограничивающий фактор. В этом случае ограничивающим фактором будет не выбранная вами ORM, а то, как вы используете этот инструмент, как вы будете писать запросы и как оптимизировать серверную часть базы данных.

Таким образом, «самым быстрым» ORM будет тот, который вы можете использовать правильно, в сочетании с сервером баз данных, который вам лучше всего понятен.

У самого ORM есть определенное количество служебных данных, поэтому «самым быстрым» с точки зрения производительности является отсутствие использования вообще. Тем не менее, это способствует увеличению времени работы компьютера во время разработки, что обычно не является хорошим компромиссом. ORM могут сэкономить большое количество времени на разработку, но при правильном использовании налагать лишь небольшие накладные расходы.

Обычно, когда люди испытывают проблемы с производительностью при использовании ORM, это происходит потому, что они используют ORM неправильно, а не потому, что они выбрали "неправильный" ORM.

3 голосов
/ 13 апреля 2010

В настоящее время мы используем Fluent NHibernate в одном из наших проектов (с веб-службами, что добавляет дополнительную временную задержку), и, насколько я вижу, доступ к данным происходит практически мгновенно (с человеческой точки зрения).

Может быть, кто-то может дать ответ с конкретными цифрами, хотя.

Поскольку эти два ORM несколько различаются, было бы лучше решить, какой из них использовать с учетом ваших конкретных потребностей, а не производительности (что, как я сказал, не должно иметь большого значения).

1 голос
/ 13 апреля 2010

Вот хороший тест . Как видите, результаты зависят от того, делаете ли вы SELECT, UPDATE, DELETE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...