Linq To Sql против производительности Entity Framework

entity-framework linq-to-sql performance stored-procedures

Вопрос

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

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

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

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

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

Принятый ответ

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

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


Популярные ответы

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

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



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему