[Moscow.pm] чем плох девелоперский веб-сервер catalyst

Монашёв Михаил postmaster на softsearch.ru
Чт Дек 11 07:57:26 PST 2008


Здравствуйте, Анатолий.

> Вообще, ═в ═теории, наверное можно написать такой перл (седьмой? :-)),
> который ═сам ═бы ═внутри ═себя ═мультиплексировал запущенные процесс и
> переписывать ═под ═мультиплексирование ═приложения не нужно было бы. А
> сейчас ═конечно ═под Каталист HTTP-движок с мультиплексированием никак
> не сделать.

> Вот это вы сильно сказали, "переписывать не нужно было бы" :)

Даже  простейший  линейный  скрипт  параллелится  на  несколько корок.
Всегда найдутся небольшие операции, которые можно выполнять независимо
от других.
Пример 1:
$y = ($a+$b)*($c+$d);
то,  что  в  скобках  не зависит никак от того, что в других скобках и
может выполняться параллельно.

Пример 2:
for ($i=1;$i<100;$i++){
    $x +=$i
}
for ($j=1;$j<200;$j++){
    $y++;
}
куски  кода  друг  от  друга  совсем  не  зависят  и могут выполняться
параллельно.

Пример 3:
набираем на одной консоли
perl 1.pl

набираем на другой консоли
perl 2.pl

у нас запускаются 2 процесса. А мог бы запуститься 1. Проблема лишь в
том, что перл пока не умеет при ожидании получения данных из сокета
или с диска делать что-то ещё. Он тупо ждёт, занимая оперативку и
приходится использовать либы для асинхроннхронной работы, чтобы
написать плохо читабельную и трудно отлаживаемую программу. Также перл
пока не умеет находит независимые друг от друга куски кода и выполнять
их параллельно на нескольких корах. Так что можно сильно ускорится не
переписывая перловые скрипты. Нужно лишь "немного :-)" допилить перл.

> Линейное программирование не может выполняться асинхронно, поэтому оно линейное.
> Поэтому в Perl 6 есть: sync { } и async { }

Есть  подозрение,  что  интерпретатор сам может определить какой код в
каком режиме можно исполнять. Только он пока этому не научился.

> Есть реализация для mysql асинхронного клиента, но чтобы ее
> прикрутить к каталисту можно офигеть :)

Дай ссылочку плз.


-- 
С уважением,
Монашёв Михаил, SoftSearch.ru
mailto:postmaster на softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.



Подробная информация о списке рассылки Moscow-pm