[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