Подтвердить что ты не робот

Linq To Sql vs Эффективность платформы Entity Framework

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 3

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

Удалить 10 000 записей Вставить 10 000 записей Редактировать 10 000 записей Databind 10 000 записей в GridView и отображение на странице

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

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

Я не пробовал Вставить/Редактирование/Удаление/Отображение более одной таблицы, объединенной вместе.

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