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

Mons Anderson v.perepelitsa на corp.mail.ru
Пн Фев 9 01:23:24 PST 2015


> 
> On 9 февр. 2015 г., at 12:06, Анатолий Гришаев <0body0 на rambler.ru> wrote:
> 
> 09.02.2015 11:37, Daniel Podolsky пишет:
>> 2015-02-09 11:17 GMT+03:00  <snelius на tsu.ru>:
>>> Я в большинстве задач
>>> предпочитаю селект, потомучто на практике это гораздо эффективнее (быстрее)
>> Это еще один тезис, к которому я бы хотел увидеть аргументы :)
> Можешь посмотреть Marc Lehmann  у него было тесты для select, kqueue, и т.д.
> Скорее всего это не то, что тебе нужно, но что мешает сделать свои и увидеть на хомячковых задачах
> async, fork, threads это одно и тоже :)
> 
> Можешь сравнить AnyEvent::HTTP и LWP. Первый ощутимо и даже видно на глаз.

1. глаз в этой задаче плохой измерительный прибор
измерительный прибор здесь - wallclock time / cpu time / consumed memory

2. LWP - это пример ужасного кода, который обрастал десятилетиями.
можно взять и перевести код AE::HTTP на синхронку и тогда сравнивать.

3. Разница между синхронным и асинхронным кодом становится видна только тогда, когда накладные расходы от планировщика OS начинают быть значимо заметными.
т.е. на 100rps вы не заметите разницы между префорком с синхронным кодом и асинхронным (ну разве что LA системы на синхронном будет побольше)
а вот если это 1000+ rps или ещё того хуже - 10k+ висящих постоянных соединений 


>> 
>> не потому, что я хочу поспорить - я могу пообещать НЕ спорить. я хочу
>> уже понять, от чего эта идея так в народе популярна...
> 
> -- 
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
-- 
Mons Anderson
<mons на cpan.org>

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


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