9 февраля 2015 г., 13:06 пользователь Daniel Podolsky <[email protected]> написал:
> > Добавлять воркеров я уже не могу - их 50 штук на сервере выполняется, и > > больше уже памяти нет. > Хочу подробностей! Что это за воркеры такие злые? Почему асинхронному > приложению эта память не понадобится? Может, и синхронному не нужна? > Один асинхронный процесс может ждать сразу несколько запросов одновременно. В процессе ожидания делая полезную работу. Один синхронный процесс может ждать только один запрос одновременно. Например: Чтобы получить данные с 50 урлов для синхронного подхода нужно создать 50 воркеров и внутри каждого отправить запрос на получение урла и ждать данных. Для асинхронного подхода достаточно в одном воркере ( или по кол ядер на сервере ) отправить сразу 50 запросов и ждать данных, в процессе ожидания данных обрабатывать уже пришедшие данные. Асинхронный подход выигрывает там, где есть сетевые задержки. Те где синхронный код ждет ответа, асинхронный код работает. Те, образно говоря, чтобы на одно и то же время получить данные с 50 урлов нужно 1 асинхронный процесс на 1 ядро и 2-3 синхронных процесса. Вот здесь и происходит экономия памяти. За счет максимального использования процессора. З.Ы. интересная дискуссия. Тоже захотелось поучаствовать ) -- С уважением, Иван
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
