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

Сообщение Re: Асинхронные стримы (IAsyncEnumerable) от 23.09.2021 12:54

Изменено 23.09.2021 13:19 VladCore

Re: Асинхронные стримы (IAsyncEnumerable)
Здравствуйте, Sinclair, Вы писали:

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


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


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

4й вариант — сравнить в Dapper await foreach и foreach
Re: Асинхронные стримы (IAsyncEnumerable)
Здравствуйте, Sinclair, Вы писали:

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


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


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

4й вариант — сравнить в Dapper await foreach и foreach