Linq To Sql против производительности Entity Framework - PullRequest
15 голосов
/ 02 ноября 2008

Я искал последние тесты производительности, сравнивающие L2S и EF, и не смог найти ни одного, который проверял бы вызов хранимых процедур, используя выпущенную версию EF. Итак, я провел несколько собственных тестов и нашел интересные результаты.

Эти результаты выглядят правильно? Должен ли я проверить это по-другому?

Один экземпляр контекста, один вызов sproc: (неработающая ссылка)

Один экземпляр контекста, несколько вызовов одного и того же спрока: (неработающая ссылка)

Несколько экземпляров контекста, несколько вызовов одного и того же спрока: (неработающая ссылка)

Ответы [ 3 ]

7 голосов
/ 03 ноября 2008

Я думаю, вам следует протестировать его несколько иначе, чтобы отличить затраты на запуск от затрат на исполнение . В частности, Entity Framework имеет значительные начальные затраты, связанные с необходимостью компилировать представления базы данных (хотя вы можете сделать это заранее). Аналогично, в LINQ есть понятие скомпилированного запроса , который был бы уместен при многократном выполнении запроса.

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

3 голосов
/ 28 августа 2009

Это выглядит как хорошее измерение производительности между LINQ to SQL и Entity Framework.

http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html

2 голосов
/ 16 декабря 2008

Я сделал пару тестовых страниц asp.net, пытаясь понять, какие из них работают лучше. Мой тест был:

Удалить 10000 записей Вставьте 10000 записей Редактировать 10000 записей Свяжите данные из 10000 записей в GridView и отобразите на странице

Я ожидал, что LinqToSQL будет быстрее, но выполнение вышеупомянутого LinqToSQL занимает почти 2 минуты, тогда как LinqToEntities занимает менее 20 секунд.

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

Я не пробовал вставлять / редактировать / удалять / отображать более 1 таблицы, объединенной вместе.

Мне интересно узнать больше ... или, если мой тест не является допустимым типом теста, мне было бы интересно посмотреть некоторые реальные тесты.

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