[Moscow.pm] чем плох девелоперский веб-сервер catalyst
Yuri Pac
yu.pats на gmail.com
Чт Дек 11 08:36:32 PST 2008
2008/12/11 Монашёв Михаил <postmaster на softsearch.ru>:
> Здравствуйте, Анатолий.
>
>> Вообще, ═в ═теории, наверное можно написать такой перл (седьмой? :-)),
>> который ═сам ═бы ═внутри ═себя ═мультиплексировал запущенные процесс и
>> переписывать ═под ═мультиплексирование ═приложения не нужно было бы. А
>> сейчас ═конечно ═под Каталист HTTP-движок с мультиплексированием никак
>> не сделать.
>
>> Вот это вы сильно сказали, "переписывать не нужно было бы" :)
>
> Даже простейший линейный скрипт параллелится на несколько корок.
> Всегда найдутся небольшие операции, которые можно выполнять независимо
> от других.
> Пример 1:
> $y = ($a+$b)*($c+$d);
> то, что в скобках не зависит никак от того, что в других скобках и
> может выполняться параллельно.
>
> Пример 2:
> for ($i=1;$i<100;$i++){
> $x +=$i
> }
> for ($j=1;$j<200;$j++){
> $y++;
> }
> куски кода друг от друга совсем не зависят и могут выполняться
> параллельно.
>
Ну предположим вы знаете что выражения или циклы независят друг от
друга и их можно поменять местами. А вот компилятор не такой умный, и
он может делать только то и только в той последовательности как сказал
программер.
Программер для того и приставлен к компьютеру чтоб оптимально
указывать последнему как надо сделать. Например свернуть 2 цикла в
один :)
> Пример 3:
> набираем на одной консоли
> perl 1.pl
>
> набираем на другой консоли
> perl 2.pl
>
> у нас запускаются 2 процесса. А мог бы запуститься 1.
Ага, точно. То что перл содержит интерпретатор не делает его сервером
приложений.
> Проблема лишь в
> том, что перл пока не умеет при ожидании получения данных из сокета
> или с диска делать что-то ещё. Он тупо ждёт, занимая оперативку и
> приходится использовать либы для асинхроннхронной работы, чтобы
> написать плохо читабельную и трудно отлаживаемую программу. Также перл
> пока не умеет находит независимые друг от друга куски кода и выполнять
> их параллельно на нескольких корах. Так что можно сильно ускорится не
> переписывая перловые скрипты. Нужно лишь "немного :-)" допилить перл.
>
Проблема в том, что для каждой задачи нужен свой инструмент. Не надо
допиливать перл, сделайте сервер приложений и дайте его нам.
--
WBR, Yuri Pac
Подробная информация о списке рассылки Moscow-pm