[Moscow.pm] асинхронный код позволяет сильно сэкономить ресурсы серверов

Иван Соколов vaneska.ru на gmail.com
Пн Фев 9 03:33:27 PST 2015


9 февраля 2015 г., 13:06 пользователь Daniel Podolsky <onokonem на gmail.com>
написал:

> > Добавлять воркеров я уже не могу - их 50 штук на сервере выполняется, и
> > больше уже памяти нет.
> Хочу подробностей! Что это за воркеры такие злые? Почему асинхронному
> приложению эта память не понадобится? Может, и синхронному не нужна?
>

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


Например:
Чтобы получить данные с 50 урлов для синхронного подхода нужно создать 50
воркеров и внутри каждого отправить запрос на получение урла и ждать данных.
Для асинхронного подхода достаточно в одном воркере ( или по кол ядер на
сервере ) отправить сразу 50 запросов и ждать данных, в процессе ожидания
данных обрабатывать уже пришедшие данные.
Асинхронный подход выигрывает там, где есть сетевые задержки. Те где
синхронный код ждет ответа, асинхронный код работает.

Те, образно говоря, чтобы на одно и то же время получить данные с 50 урлов
нужно 1 асинхронный процесс на 1 ядро и 2-3 синхронных процесса.

Вот здесь и происходит экономия памяти. За счет максимального использования
процессора.


З.Ы. интересная дискуссия. Тоже захотелось поучаствовать )

-- 
С уважением,
Иван
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150209/c6ef7a8f/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm