Re: Асинхронные стримы (IAsyncEnumerable)
От: VladCore  
Дата: 23.09.21 12:54
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Коллеги, кто уже гонял сабж в продакшн или достаточно внимательно в тестах?


S>Хочу понять, каковы накладные расходы.


Легко получить накладные расходы бенчмарками, да
1. если под await сеть, то сравнить await foreach и foreach для TcpListener на localhost и 127.0.0.1. разница будет потому что MTA разный
2. если под await диск, то сравнить await foreach и foreach для RAM-диска или оптан диска. На всякий случай упомяну что асинхронная работа в FileStream сильно переписана в 6м Core. В 5м много чего в Async-методах всё еще реализовано абы как (синхронно)
3. если под await потоки (например ManualResetEventSlim.Wait — самая быстрая реализация) то я уже делился задержками. Они большие: 1 микросекунда в Core на Windows, 2 — Core на линукс, 4 — на NetFramework под Windows, и 16 — в моно. на кажую итерацию. Это всё на Intel Xeon 6го поколения.

4й вариант — сравнить в Dapper await foreach и foreach. Тут разница конечно сильно большая будет в SQLite и MS SQL Shared Memory и MS SQL TCP IP. Вобщем работы много.
Отредактировано 23.09.2021 13:23 VladCore . Предыдущая версия . Еще …
Отредактировано 23.09.2021 13:22 VladCore . Предыдущая версия .
Отредактировано 23.09.2021 13:22 VladCore . Предыдущая версия .
Отредактировано 23.09.2021 13:19 VladCore . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.