Информация об изменениях

Сообщение Re[115]: Тормознутость и кривость linq от 28.06.2016 14:12

Изменено 28.06.2016 14:15 liiw

Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, liiw, Вы писали:


L>>Тесты тестируют скорость выволнения запросов :). На время инициализации контекста можно не смотреть, т.к. что имеено в него входит я не знаю — можно смотреть только суммарное время выпонения запроса. Контекстом я хотел померять накладные расходы за вычетом самого запроса (компилция LINQ, выполнение запроса, материализация). И как видно по тестам, на что-то там ещё тратится время, хоть и незначительное.


I>А почему время инициализации контекста можно смотреть ? У тебя получается что выпячивается именно эта инициализация. Если контекст создаётся каждый раз на реквест, то на простецких запросах это вылезет.

I>То есть, непонятен сам тест, что он показывает, с учетом твоих коментариев. Если тест про то, что время инициализации сравнимо с временем работы маппинга, то это мне кажется надо как то иначе замерять.

Не очень понял вопрос. Почему нужно (а не "можно") смотреть время инициализации контекста?
Я рассуждал так.
Есть время выполнения запроса — создание SQL комманды (с помощью LINQ или сразу текста), посылка её SQL-серверу, выполнение команды SQL-сервером, чтение ответа SQL-сервера, и материализация данных.
У меня было предположение, что помимо самого выполнения запроса на суммарное время могут влиять другие факторы. Какие — не суть важно. Я назвал это факторы инициализацией контекста.
И это не обяхательно только создание класса — "new NorthwindEfDbContextCodeFirst()". Может непосредственно при вызове SQL-запроса что-то ещё делается. Не суть важно. Я хотел померять это.

Результат — т.к. это время получилось относительно маленьким, то для реальных запросов (т.е. не однострочных типа "SELECT * FROM Table1") его влияние можно не учитывать. Не учитывать для ADO.NET и LINQ2DB. Для EF нужно учитывать — что при его использовании даже для не простых запросов это время может существенно влиять если запросов много.
Re[115]: Тормознутость и кривость linq
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, liiw, Вы писали:


L>>Тесты тестируют скорость выволнения запросов :). На время инициализации контекста можно не смотреть, т.к. что имеено в него входит я не знаю — можно смотреть только суммарное время выпонения запроса. Контекстом я хотел померять накладные расходы за вычетом самого запроса (компилция LINQ, выполнение запроса, материализация). И как видно по тестам, на что-то там ещё тратится время, хоть и незначительное.


I>А почему время инициализации контекста можно смотреть ? У тебя получается что выпячивается именно эта инициализация. Если контекст создаётся каждый раз на реквест, то на простецких запросах это вылезет.

I>То есть, непонятен сам тест, что он показывает, с учетом твоих коментариев. Если тест про то, что время инициализации сравнимо с временем работы маппинга, то это мне кажется надо как то иначе замерять.

Не очень понял вопрос. Почему нужно (а не "можно") смотреть время инициализации контекста?
Я рассуждал так.
Есть время выполнения запроса — создание SQL комманды (с помощью LINQ или сразу текста), посылка её SQL-серверу, выполнение команды SQL-сервером, чтение ответа SQL-сервера, и материализация данных.
У меня было предположение, что помимо самого выполнения запроса на суммарное время могут влиять другие факторы. Какие — не суть важно. Я назвал эти факторы инициализацией контекста.
И это не обязательно только создание класса — "new NorthwindEfDbContextCodeFirst()". Может непосредственно при вызове SQL-запроса что-то ещё делается. Не суть важно. Я хотел померять это.

Результат — т.к. это время получилось относительно маленьким, то для реальных запросов (т.е. не однострочных типа "SELECT * FROM Table1") его влияние можно не учитывать. Не учитывать для ADO.NET и LINQ2DB. Для EF нужно учитывать — что при его использовании для не сильно сложных запросов это время может существенно влиять если запросов много.