> > 8 февраля 2015 г., 23:22 пользователь Alexander Lourier <[email protected]> > написал: > >> > ну смешно же. любой демон, работающий с внешней средой. > >> ну, то есть, прокси. одну задачу придумали. а еще? > > > > > > Почему обязательно прокси? > > > > Практически любое веб-приложение требует на каждый запрос > аутентифицировать > > сессию, запросить данные у бэкендов (memcached, база, какие-то другие > > серверы), собрать шаблон, отправить обратно. Вычислительной нагрузки - > кот > > наплакал (сформировать запросы, распарсить ответы, отрендерить шаблон, > > сформировать ответ). Но это не прокси, это полноценное приложение, > которых > > большинство. > > Да, вот именно что большинство. Но не согласен, что в перечисленном > выше списке вычислительной нагрузки - кот наплакал. Её много. > Нельзя сделать такое приложение только асинхронным. Пока в > каком-нибудь одном воркере будут вычисления, все остальные будут > тупить. >
В перле - да. В общем случае - необязательно. В Go свободный тред из пула подхватит горутину и продолжит её выполнять. > Соответственно придётся делать и fork, а внутри каждого unix процесса > - асинхронный код. Что похоже на двойную работу ради экономии памяти. > Fork или threads - обязательно, чтобы загрузить все ядра процессора. Асинхронный код, чтобы использовать их более эффективно. > Имхо вообще асинхронные приложения мало где оправданы - это должно > быть приложение либо блокирующеесся только вводом-выводом, либо то где > хайлоад/много воркеров и разработка fork+AE+риск что Марк найдёт свой > автобус хоть как-то выгоднее содержания дополнительных компов/памяти > памяти (для "большинства задач" речь о выделении о покупке одной > планки памяти в следующий апгрейд). > Они оправданны, если имеет смысл экономить ресурсы. Если же эффект от экономии не оправдывает затрат времени разработчика, то конечно не надо. Планка в один сервер стоит дёшево. Если серверов 10, и планка нужна в каждый, это уже дороже. Если это арендованные серверы или облако, то намного дороже и каждый месяц. Если усилия разработчиков на разработку и поддержку асинхронного кода меньше, чем выгода от его внедрения, то ну его нафиг, конечно. Собственно, суть в том, что на перле писать и поддерживать асинхронный код - это боль. Поэтому нужна очень серьёзная экономия, чтобы этим заниматься. На Go (или даже Stackless Python) это совершенно естественно и бесплатно. Поэтому там даже вопрос так не стоит - конечно надо писать асинхронно.
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
