У вас шаблонизатор внешний ресурс?! Это ему по сокету дают, например json, а он 
возвращает html?

Я думал, что большинство веб-приложений - получил запрос, пообщался с одной 
базой данных (3-5 запросов), сформировал html и отдал. Когда ждем ответы от 
базы, CPU занят обработкой запросов в других процессах. Да и формирование html 
по шаблону тяжелая ведь задача (наверно).

Думал, что "сходить во внешние ресурсы и применить к результатам какую-то 
простую логику" - это редкие задачи (своя база не в счет). А оказывается 
наоборот!

А что это "Есть еще пара случаев, когда синхронка хорошо выигрывает у 
асинхронки, но они довольно редкие и узкоспециализированные"?

Это я так засомневался, когда к своей мултипроцесной асинхроной штуке, 
прикрутил нагрузку по анализу скачиваемых html, и увидел, что вариант с 2 двумя 
рабочими дочерними процессами (у меня два ядра) и с 100 асинхронных сокетов в 
каждом дает такую же производительность, как и вариант с 8 рабочими дочерними 
синхронными процессами. В общем, узкое место стало CPU.

Кончено, если внешние ресурсы тормозят, то да. Но если они свои, то все быстро.

В общем, есть пища для размышлений.

Спасибо.

P.S.
Хотя, если логика простая, то можно и на более быстром языке делать ее.
Скорость еще выше будет. :-)

-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить