Re[8]: производительность HttpClient
От: Gt_  
Дата: 13.08.23 19:04
Оценка: :))) :)
bnk>>>Я не понимаю как создание 4000 потоков на процессоре который поддерживает 16 (для примера), может в принципе что-то ускорить?

Gt_>>Что ты слышал про зеленые потоки?


bnk>Ничего практически (в контексте .net по крайней мере).

bnk>То есть, вообще я термин такой слышал, но что он означает я не совсем в курсе.
bnk>Насколько я понял это типа эмуляция потоков? Типа недоделанный async/await, или?

это async/await недоделанный зеленый поток, а зеленый поток это полностью автоматизированный async/await без засирания языка не нужными конструкциями. так вот, с зелеными потоками простенький сервак с рест сервисом способен чуть ли не миллион запросов в секунду держать, что на несколько больше процессорных threads.
вся фишка в том, что пока одни потоки ждут и/о другие могут утилизировать cpu.

Gt_
Re: производительность HttpClient
От: UniqueGuid Канада  
Дата: 14.08.23 03:02
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Получается около 40-50 запросов в секунду. И хотя я не ожидал миллионов, но это — вообще курам на смех.

C>Я что-то упускаю?

Да, упускаешь. Этот код показывает не быстродействие HttpClient, а сколько можно запросов выполнить в синхронном режиме с настроенной параллелизацией. HttpClient может легко держать тысячи реквестов в секунду
Re: производительность HttpClient
От: Codealot Земля  
Дата: 15.08.23 00:34
Оценка:
Странно, но это как-то связано с компьютером. Запускаю на одном, и получаю жалкие крохи. Запускаю на другом, и влегкую 3-4 тысячи.
Ад пуст, все бесы здесь.
Re[2]: производительность HttpClient
От: vmpire Россия  
Дата: 15.08.23 07:56
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Странно, но это как-то связано с компьютером. Запускаю на одном, и получаю жалкие крохи. Запускаю на другом, и влегкую 3-4 тысячи.

firewall? Антивирус?
Re[3]: производительность HttpClient
От: Codealot Земля  
Дата: 15.08.23 14:36
Оценка:
Здравствуйте, vmpire, Вы писали:

V>firewall? Антивирус?


Одинаково — Defender. Разница в том, что где тормозит — винда 11, а где нет — 10. Но это вряд ли объясняет проблему.
Ад пуст, все бесы здесь.
Re[2]: производительность HttpClient
От: UniqueGuid Канада  
Дата: 20.08.23 21:18
Оценка: +1
C>Странно, но это как-то связано с компьютером. Запускаю на одном, и получаю жалкие крохи. Запускаю на другом, и влегкую 3-4 тысячи.

Это связано с тем, что

using var response = await httpClient.GetAsync(url, token);


делает следующее:

1. (в первый раз) устанавливает сооединение (DNS, etc.)
2. [HttpClient] Посылает сообщение
3. Сообщение пересылается по сети
4. Сервер обрабатывает сообщение
5. Ответ пересылается по сети
6. [HttpClient] Ответ обрабытывается HttpClient

Здесь HttpClient почти ничего не делает по сравнению с другими пунктами
Re[4]: производительность HttpClient
От: Разраб  
Дата: 21.08.23 04:10
Оценка:
Здравствуйте, Codealot, Вы писали:

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


V>>firewall? Антивирус?


C>Одинаково — Defender. Разница в том, что где тормозит — винда 11, а где нет — 10. Но это вряд ли объясняет проблему.

Маршрут везде одинаковый? пинги?
tracert ya.ru
ping -n 100 ya.ru
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[5]: производительность HttpClient
От: Codealot Земля  
Дата: 21.08.23 14:30
Оценка: +1
Здравствуйте, Разраб, Вы писали:

Р>Маршрут везде одинаковый? пинги?


Это ж локалхост.
Ад пуст, все бесы здесь.
Re[3]: производительность HttpClient
От: Codealot Земля  
Дата: 22.08.23 15:05
Оценка:
Здравствуйте, UniqueGuid, Вы писали:

UG>Здесь HttpClient почти ничего не делает по сравнению с другими пунктами


Ну а где тогда тормозит и почему?
Ад пуст, все бесы здесь.
Re[4]: производительность HttpClient
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.08.23 15:27
Оценка:
Здравствуйте, Codealot, Вы писали:

V>>firewall? Антивирус?


C>Одинаково — Defender. Разница в том, что где тормозит — винда 11, а где нет — 10. Но это вряд ли объясняет проблему.


Можно на сервере посмотреть очередь запросов. Скорее всего ServicePointManager.DefaultConnectionLimit не работает

ServicePointManager.DefaultConnectionLimit = 4;

или

Uri uri = new Uri("http://www.contoso.com/");
ServicePoint sp = ServicePointManager.FindServicePoint(uri);
sp.ConnectionLimit = newLimit;
и солнце б утром не вставало, когда бы не было меня
Отредактировано 22.08.2023 15:30 Serginio1 . Предыдущая версия .
Re[5]: производительность HttpClient
От: Codealot Земля  
Дата: 22.08.23 16:03
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Можно на сервере посмотреть очередь запросов.


Нет, проблема не в сервере.
Ад пуст, все бесы здесь.
Re[6]: производительность HttpClient
От: karbofos42 Россия  
Дата: 22.08.23 16:11
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Это ж локалхост.


но ведь не 127.0.0.1
Re[6]: производительность HttpClient
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.08.23 16:22
Оценка:
Здравствуйте, Codealot, Вы писали:

S>> Можно на сервере посмотреть очередь запросов.


C>Нет, проблема не в сервере.

Так ServicePointManager это про клиента
https://learn.microsoft.com/ru-ru/dotnet/api/system.net.servicepointmanager?view=net-7.0

Мало того, ты можешь регулировать и постоянные соединения
https://learn.microsoft.com/ru-ru/dotnet/api/system.net.servicepointmanager.defaultpersistentconnectionlimit?view=net-7.0#system-net-servicepointmanager-defaultpersistentconnectionlimit

https://stackoverflow.com/questions/31735569/what-is-httpclients-default-maximum-connections
и солнце б утром не вставало, когда бы не было меня
Отредактировано 22.08.2023 16:36 Serginio1 . Предыдущая версия . Еще …
Отредактировано 22.08.2023 16:24 Serginio1 . Предыдущая версия .
Re[7]: производительность HttpClient
От: Codealot Земля  
Дата: 22.08.23 20:22
Оценка:
Здравствуйте, karbofos42, Вы писали:

K>но ведь не 127.0.0.1


Без разницы. Кстати, http/https тоже ничего не меняет.
Ад пуст, все бесы здесь.
Re[7]: производительность HttpClient
От: Codealot Земля  
Дата: 23.08.23 01:45
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Так ServicePointManager это про клиента


Не, на клиенте уже пробовал. Однофигственно.
Ад пуст, все бесы здесь.
Re[8]: производительность HttpClient
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 23.08.23 07:44
Оценка:
Здравствуйте, Codealot, Вы писали:

S>> Так ServicePointManager это про клиента


C>Не, на клиенте уже пробовал. Однофигственно.

Интересно, а что выдает
var url = "https://localhost:7065/weatherforecast";
Uri uri = new Uri(url);
ServicePoint sp = ServicePointManager.FindServicePoint(uri);
sp.ConnectionLimit??

Там явно проблема с количеством соединений с сервером
и солнце б утром не вставало, когда бы не было меня
Отредактировано 23.08.2023 9:05 Serginio1 . Предыдущая версия .
Re[9]: производительность HttpClient
От: Codealot Земля  
Дата: 25.08.23 19:45
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Интересно, а что выдает


Одинаково в обоих случаях.
Ад пуст, все бесы здесь.
Re[10]: производительность HttpClient
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 25.08.23 20:32
Оценка:
Здравствуйте, Codealot, Вы писали:


S>> Интересно, а что выдает


C>Одинаково в обоих случаях.

200?
и солнце б утром не вставало, когда бы не было меня
Re[11]: производительность HttpClient
От: Codealot Земля  
Дата: 25.08.23 20:53
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> 200?


Если я его не устанавливаю, то 2
Если устанавливаю, то 0x200. Но скорость от этого заметно не меняется.
Ад пуст, все бесы здесь.
Re: производительность HttpClient
От: Codealot Земля  
Дата: 13.09.23 23:59
Оценка:
Поковырявишсь выяснил, что скорость радикально меняется в зависимости от того, запускается прога под отладчиком или без. И без него, скорость на "медленном" компе уже намного лучше.
Но хотел бы я знать, почему это так сильно влияет на один комп, но не на другой.
Ад пуст, все бесы здесь.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.