[Moscow.pm] чем плох девелоперский веб-сервер catalyst
Михаил Монашёв
postmaster на softsearch.ru
Чт Дек 11 12:15:16 PST 2008
Здравствуйте, Сергей.
>> Вообще, в теории, наверное можно написать такой перл (седьмой?
>> :-)), который сам бы внутри себя мультиплексировал запущенные
>> процесс и переписывать под мультиплексирование приложения не нужно
>> было бы. А сейчас конечно под Каталист HTTP-движок с
>> мультиплексированием никак не сделать.
СМ> Миш, по моему дело все в том, что парадигма процедурного
СМ> программирования вообще плохо подходит для мультиплексирования,
СМ> асинхронности и параллельности. Можно на perl5 написать
СМ> мультиплексирующий сервер? Можно конечно. Но если задуматься - это
СМ> будет реализация уже другой парадигмы поверх "родной" для perl
СМ> процедурной. Поэтому и не приживаются подобные проекты в широких
СМ> массах, а приживается привычный prefork.
СМ> Но для каждой задачи есть решение - есть и специфичные инструменты
СМ> для параллельных вычислений. Есть вполне реальный Erlang, есть
СМ> какой-то удивительный Oz (и говорят на нем есть реальные
СМ> веб-проекты) и т.п. - в которых нужная "модель мира" заложена на
СМ> базовом уровне.
СМ> Я это к тому, что можно конечно прогибать perl под какие угодно
СМ> парадигмы (или наоборот - парадигмы под perl) и реализовывать
СМ> любые идеи - но я бы воспринимал это как эксперименты или
СМ> развлечение, я не как production работу.
Мне тоже нравится, что перл очень стабильный. Но это не значит, что
его не надо делать лучше :-)
Не знаю как тебе, но мне жалко простаивающего процессора. Как-то один
продавец рекламы сказал мне, что показ банера надо продать за любую
цену, потому что он есть прямо сейчас, а через минуту его не будет.
Так и тут, большинство процессоров простаивают и используются очень
неэффективно. И что меня больше всего убивает, что причина этого
всепланетарного простоя в том, что небольшая группа людей (человек
5-10 наверное), разрабатывающих gcc, не может реализовать
разбрасывание на несколько корок независимых кусков кода, а другая
небольшая группа людей, разрабатывающих Линух, Винду, Фрю и т.д. не
даёт им для этого быстрого интерфейса, утверждая, что распределение
процессов по коркам - это задача шедуллера ОС, а не gcc, что в общем
случае верно, но с увеличением числа корок нам приходится запускать на
одном сервере кучу процессов (как nginx запускает много worker-ов),
дабы они могли нормально утилизировать процессор, хоте можно был бы
запустить один mysqld и он бы полностью съедал проц.
--
С уважением,
Михаил Монашёв, SoftSearch.ru
mailto:postmaster на softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
Подробная информация о списке рассылки Moscow-pm