powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF6 ToList() и ToListAsync() время выполнения
22 сообщений из 22, страница 1 из 1
EF6 ToList() и ToListAsync() время выполнения
    #39729313
sa13m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WPF 4.5, EF6.2.0 code first, Sql Server 2012.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
private void GetDataToList()
{
  Stopwatch watch = new Stopwatch();
  using (var ctx = new Context())
  {
    watch.Start();
    dg.ItemsSource = ctx.Items.AsNoTracking().ToList();
    watch.Stop();
    MessageBox.Show(watch.Elapsed.ToString());
  }
}

private async void GetDataTaskRun()
{
  Stopwatch watch = new Stopwatch();
  using (var ctx = new Context())
  {
    watch.Start();
    dg.ItemsSource = await Task.Run(() => ctx.Items.AsNoTracking().ToList());
    watch.Stop();
    MessageBox.Show(watch.Elapsed.ToString());
  }
}

private async void GetDataToListAsync()
{
  Stopwatch watch = new Stopwatch();
  using (var ctx = new Context())
  {
    watch.Start();
    dg.ItemsSource = await ctx.Items.AsNoTracking().ToListAsync();
    watch.Stop();
    MessageBox.Show(watch.Elapsed.ToString());
  }
}


Выборка из таблицы с 1млн строк:
ToList() ~ 26сек
Task.Run ToList() ~ 29сек
ToListAsync() ~ 81сек
Почему такая разница между GetDataTaskRun() и GetDataToListAsync()? Подскажите, как работать с async в EF6?
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729323
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa13mПодскажите, как работать с async в EF6?пагинация.
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729550
sa13m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123sa13mПодскажите, как работать с async в EF6?пагинация.

Это не выход для меня. Что не так с ToListAsync()?
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729552
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Профайлером SQL смотрели? Запросы отличаются? Время запроса то же самое?
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729572
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa13mЭто не выход для меня.Конечно. Меня лимон смотрят через пол сек. А у тебя пол минуты пялятся в пустой экран.
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729578
sa13m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProПрофайлером SQL смотрели? Запросы отличаются? Время запроса то же самое?

В профайлере запросы одинаковые. Этот же запрос через Management studio выполняется ~50 сек
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729582
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa13mВ профайлере запросы одинаковые. Этот же запрос через Management studio выполняется ~50 секЧерез студию - пофиг.
Меня интересует - время выполнения трех запросов из вышеприведенного теста по профайлеру одинаковое?
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729583
sa13m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123sa13mЭто не выход для меня.Конечно. Меня лимон смотрят через пол сек. А у тебя пол минуты пялятся в пустой экран.

Через пол секунды смотрят первые 1000 строк?
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729584
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa13mPetro123пропущено...
Конечно. Меня лимон смотрят через пол сек. А у тебя пол минуты пялятся в пустой экран.


Через пол секунды смотрят первые 1000 строк?Забей.
Petro123FloodFactory.Instance.AutoReply()
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729585
sa13m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Prosa13mВ профайлере запросы одинаковые. Этот же запрос через Management studio выполняется ~50 секЧерез студию - пофиг.
Меня интересует - время выполнения трех запросов из вышеприведенного теста по профайлеру одинаковое?

Время одинаковое перепроверил несколько раз
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729586
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa13mВремя одинаковое перепроверил несколько раз
тогда надо заглянуть в исходник ToListAsync и проанализировать его.
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729590
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм. Там итерации выполняются с помощью ForEachAsync, который на каждую итерацию создает отдельную таску, да еще без ConfugireAwait(false)
Похоже, много времени уходит на накладные расходы.
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729594
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa13mЧерез пол секунды смотрят первые 1000 строк?в настройках сколько им удобно. Неужели не видел настройку в любом инет магазине: Показывать столько то строк.
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729606
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123в настройках сколько им удобно. Неужели не видел настройку в любом инет магазине: Показывать столько то строк.Кто тебе с казал, что это вообще сайт, что эти строки отображдаются пользователю? Ты мыслишь только с высоты своего опыта (два вершка) и не можешь придумать иных юзеркейсов.


К автору: тем не менее - тащить миллион записей на клиента требуется крайне редко, действительно неляз обойтись обработкой на сервере? Или это просто тестовая задача для проверки производительности?
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729608
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProКто тебе с казал, что это вообще сайт, что эти строки отображдаются пользователю? Ты мыслишь только с высоты своего опыта (два вершка) и не можешь придумать иных юзеркейсов.у меня по шахматам разряд))
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729615
sa13m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProPetro123в настройках сколько им удобно. Неужели не видел настройку в любом инет магазине: Показывать столько то строк.Кто тебе с казал, что это вообще сайт, что эти строки отображдаются пользователю? Ты мыслишь только с высоты своего опыта (два вершка) и не можешь придумать иных юзеркейсов.


К автору: тем не менее - тащить миллион записей на клиента требуется крайне редко, действительно неляз обойтись обработкой на сервере? Или это просто тестовая задача для проверки производительности?

После перевода EF запросов на async стал замечать потерю быстродействия. Таблица с миллионом записей взята для тестирования. Пока остановился на Task.Run(...).ConfigureAwait(false), время выполнения близко к ToList().
Спасибо Вам за помощь.
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729616
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

нулевой?
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729624
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa13mПосле перевода EF запросов на async стал замечать потерю быстродействия. Таблица с миллионом записей взята для тестирования. Пока остановился на Task.Run(...).ConfigureAwait(false), время выполнения близко к ToList().
Спасибо Вам за помощь.Глянул в EF Core - навскидку там иначе, возможно такого косяка нет
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729629
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosPetro123,
нулевой?ты программист? Ты че тут делаешь?
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729631
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proтакого косяка нетTask. Run подойдет к любым вариантам. К бабке не ходи.
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729666
sa13m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Prosa13mПосле перевода EF запросов на async стал замечать потерю быстродействия. Таблица с миллионом записей взята для тестирования. Пока остановился на Task.Run(...).ConfigureAwait(false), время выполнения близко к ToList().
Спасибо Вам за помощь.Глянул в EF Core - навскидку там иначе, возможно такого косяка нет

В EF Core такой же долгий ToListAsync()
...
Рейтинг: 0 / 0
EF6 ToList() и ToListAsync() время выполнения
    #39729710
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa13mToListAsyncи не во всех базах это есть.
Свой пул потоков будет по практичнее.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF6 ToList() и ToListAsync() время выполнения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]