powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Есть ли смысл в асинхронности
25 сообщений из 46, страница 1 из 2
Есть ли смысл в асинхронности
    #39845631
Junior1997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
2.
3.
4.
5.
6.
        public async Task<JsonResult> Transfer()
        {
            var client = new CM_PL.HttpClients.GateWayClient();
            var result = await client.SendAnalysisAsync();
            return Json(result, JsonRequestBehavior.AllowGet);
        }



скажите пожалуйста есть ли смысл в асинхронности в этом коде? мне кажется что нет смысла только память грузить, так как ретурн произайдёт только после того как отработает SendAnalysisAsync. или я ошиюаюсь(((
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845658
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Junior1997,

давай попробую подвести тебя к ответу. в чем смысл асинхроности?
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845679
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Junior1997,

Если это долгая операция - то смысл есть(не замораживать интерфейс).
А судя по всему, это долгая операция.

Асинхронность нужна когда параллельность важнее простоты и имеет смысл.
Последовательный код нужен тогда, когда простота кода важнее производительности.

Если с введением параллельности ты ускоришь выполнение метода с 100мс до 90мс - то вряд ли это нужно.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845681
Junior1997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valery_BJunior1997,

Если это долгая операция - то смысл есть(не замораживать интерфейс).
А судя по всему, это долгая операция.

Асинхронность нужна когда параллельность важнее простоты и имеет смысл.
Последовательный код нужен тогда, когда простота кода важнее производительности.

Если с введением параллельности ты ускоришь выполнение метода с 100мс до 90мс - то вряд ли это нужно.

Да. но в данном примере в чём смысл return? результат всё равно вернётся же через ннн-е количесво времени. Т.е если бы это было Winforms или WPF то понятно поток основной не блокируется и мы спокойно получннеые данные в UI
А тут основной паток не блокируется... запрос с клиента отработал но ответа не плолучил?
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845683
Junior1997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
handmadeFromRuJunior1997,

давай попробую подвести тебя к ответу. в чем смысл асинхроности?

Не блокировать основной поток.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845687
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Junior1997handmadeFromRuJunior1997,

давай попробую подвести тебя к ответу. в чем смысл асинхроности?

Не блокировать основной поток.

Значит поток сможет пока обработать другие запросы. Поток это довольно ценный и исчерпаемый ресурс.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845688
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Junior1997handmadeFromRuJunior1997,

давай попробую подвести тебя к ответу. в чем смысл асинхроности?

Не блокировать основной поток.
если идет вопрос о сервере и асп приложение то вызов в коде асинхроного вызова на долгую операцию даст асп потоку что был использован для запроса сделать полезную работу по обработке еще одно реквеста к примеру.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845689
Junior1997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttJunior1997пропущено...


Не блокировать основной поток.

Значит поток сможет пока обработать другие запросы. Поток это довольно ценный и исчерпаемый ресурс.
так в том и дело в данном примере ничего другого Action не делает. Поэтому возникли вопросы
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845693
Junior1997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
handmadeFromRuJunior1997пропущено...


Не блокировать основной поток.
если идет вопрос о сервере и асп приложение то вызов в коде асинхроного вызова на долгую операцию даст асп потоку что был использован для запроса сделать полезную работу по обработке еще одно реквеста к примеру.

Да речь идёт про ASP, А что тогда с результатом? ПОлучается так что юзер открыл страницу. она не блокируется срендерилась быстро очень. но данных на ней нет и юзер переходит а другую страницу думая что это ошибка?
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845697
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Junior1997Да речь идёт про ASP, А что тогда с результатом? ПОлучается так что юзер открыл страницу. она не блокируется срендерилась быстро очень. но данных на ней нет и юзер переходит а другую страницу думая что это ошибка?
ты мыслишь очень узко. у тебя может 10к юзеров онлайн и делать свои запросы к серваку.
ты должен понимать что 1 запрос к серваку это 1 запрос из трид пула. асинхроность позволить использовать поток где то еще пока тебе не пришел результат. поэтому она оверхед на быстрой операции.
время выполнение не улушиться конечно же
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845709
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

Ну не такой уж оверхед, если асинк операция сразу вернёт выполненную задачу, вся операция выполнится синхронно.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845711
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Junior1997,
How Requests Are Processed by the Thread Pool

In general, use synchronous methods for the following conditions:
автор- The operations are simple or short-running.
- Simplicity is more important than efficiency.
- The operations are primarily CPU operations instead of operations that involve extensive disk or network overhead. Using asynchronous action methods on CPU-bound operations provides no benefits and results in more overhead.

In general, use asynchronous methods for the following conditions:
автор- You're calling services that can be consumed through asynchronous methods, and you're using .NET 4.5 or higher.
- The operations are network-bound or I/O-bound instead of CPU-bound.
- Parallelism is more important than simplicity of code.
- You want to provide a mechanism that lets users cancel a long-running request.
- When the benefit of switching threads outweighs the cost of the context switch. In general, you should make a method asynchronous if the synchronous method waits on the ASP.NET request thread while doing no work. By making the call asynchronous, the ASP.NET request thread is not stalled doing no work while it waits for the web service request to complete.
- Testing shows that the blocking operations are a bottleneck in site performance and that IIS can service more requests by using asynchronous methods for these blocking calls.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845713
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuты должен понимать что 1 запрос к серваку это 1 запрос из трид пула. асинхроность позволить использовать поток где то еще пока тебе не пришел результат.

Правильно ли я понял, что в основном, это для освобождения трэда из пула IIS ?
Точнее - это один из плюсов из плюсов асинхронности, в случае если это метод контроллера ASP NET приложения ?
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845724
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BhandmadeFromRuты должен понимать что 1 запрос к серваку это 1 запрос из трид пула. асинхроность позволить использовать поток где то еще пока тебе не пришел результат.

Правильно ли я понял, что в основном, это для освобождения трэда из пула IIS ?
Точнее - это один из плюсов из плюсов асинхронности, в случае если это метод контроллера ASP NET приложения ?
ага

hVostt Ну не такой уж оверхед, если асинк операция сразу вернёт выполненную задачу, вся операция выполнится синхронно.

разве? упаковка и передача из одного потока в другой и назад, восстановления контекста синхронизации- все таки мне кажется все равно дополнительные время и память.
(именно про быстрые результаты)
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845728
Junior1997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostthandmadeFromRu,

Ну не такой уж оверхед, если асинк операция сразу вернёт выполненную задачу, вся операция выполнится синхронно.
А если не сразу. Мне вот не понятно. Получается так что если запрос отработал пришёл респонс.... данных нет. и пока данных нет то юзер может запрашивать другие данные с сервера?
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845729
Junior1997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valery_B,

Спасибо
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845813
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuhVosttНу не такой уж оверхед, если асинк операция сразу вернёт выполненную задачу, вся операция выполнится синхронно.

разве? упаковка и передача из одного потока в другой и назад, восстановления контекста синхронизации- все таки мне кажется все равно дополнительные время и память.
(именно про быстрые результаты)

во-первых, в asp.net core отказались от контекста синхронизации, что конечно приводит к отсутствию возможности хранить принципала в контексте потока.

во-вторых, если асинхронный метод возвращает завершённую задачу никакой упаковки и работы с потоками нет, всё выполняется синхронно, как вызов обычного метода.

кое какой оверхед при этом конечно есть, чуть больше кода на реализацию state machine, но совсем не критично.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39845866
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuValery_Bпропущено...


Правильно ли я понял, что в основном, это для освобождения трэда из пула IIS ?
Точнее - это один из плюсов из плюсов асинхронности, в случае если это метод контроллера ASP NET приложения ?
ага

hVostt Ну не такой уж оверхед, если асинк операция сразу вернёт выполненную задачу, вся операция выполнится синхронно.

разве? упаковка и передача из одного потока в другой и назад, восстановления контекста синхронизации- все таки мне кажется все равно дополнительные время и память.
(именно про быстрые результаты)

для таких задач(быстрых операций) нужно использовать ValueTask.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39846001
Hexag0v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttJunior1997пропущено...


Не блокировать основной поток.

Значит поток сможет пока обработать другие запросы. Поток это довольно ценный и исчерпаемый ресурс.

Ето если производительность уперается в потоки сервера, а если в скажем узкое место это база (такое тоже бывает), то мы нагрузим ее еще больше.
Получится обратный эффект.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39846029
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subдля таких задач(быстрых операций) нужно использовать ValueTask.

классическое (уже) заблуждение. профит от ValueTask можно получить на очень очень узком спектре операций, которые ещё ко всему прочему надо выявить и протестировать. на деле получается обратная ситуация.

обычно не нужно использовать ValueTask и тем более думать, что это решение проблемы с производительностью.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39846030
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hexag0vЕто если производительность уперается в потоки сервера, а если в скажем узкое место это база (такое тоже бывает), то мы нагрузим ее еще больше.
Получится обратный эффект.

это не совсем корректный взгляд на вещи. во-первых, перед базой может стоять кеш в виде редиски, тоже асинк, во-вторых проблема узкого места в БД никуда не уйдёт и без потоков сервера, так как способность обрабатывать все запросы решается масштабированием. а асинк снижает потребность в таком решении.
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39846089
Hexag0v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttHexag0vЕто если производительность уперается в потоки сервера, а если в скажем узкое место это база (такое тоже бывает), то мы нагрузим ее еще больше.
Получится обратный эффект.

это не совсем корректный взгляд на вещи. во-первых, перед базой может стоять кеш в виде редиски, тоже асинк, во-вторых проблема узкого места в БД никуда не уйдёт и без потоков сервера, так как способность обрабатывать все запросы решается масштабированием. а асинк снижает потребность в таком решении.
Выгрузить в редис не всегда вариант, есть постоянные изменения и просчеты относительно актуальных данных. Встанет вопрос, что лучше масштабировать http server или db server?
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39846124
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hexag0vВыгрузить в редис не всегда вариант, есть постоянные изменения и просчеты относительно актуальных данных. Встанет вопрос, что лучше масштабировать http server или db server?

Глупости какие-то говорите. Это не коррелирующие понятия. Если у вас узкое звено это дб сервер, то надо решать эту проблему, при чём тут http сервер? Или вы предлагаете пользователям ловить 503, лишь бы бд сервер не страдал? Какой посыл-то? )))
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39846176
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hexag0vВыгрузить в редис не всегда вариант, есть постоянные изменения и просчеты относительно актуальных данных. Встанет вопрос, что лучше масштабировать http server или db server?
Если вы будете масштабировать http server, то вы обратно придёте к "узкое место это база (такое тоже бывает)... мы нагрузим ее еще больше".

То есть к тому, о чём пишет hVostt: надо решать проблему с db server
...
Рейтинг: 0 / 0
Есть ли смысл в асинхронности
    #39846186
Hexag0v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильно,
посыл к тому, что перед тем как переписывать код на асинхронный, нужно понять поможет ли это вообще, и в чем проблема на самом деле.
...
Рейтинг: 0 / 0
25 сообщений из 46, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Есть ли смысл в асинхронности
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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