LINUX.ORG.RU
ФорумAdmin

mod_perl, mod_python


0

0

кто-нибудь использовал эти модули ? какие плюсы/минусы запуска скриптов через mod_perl, mod_python по-сравнению с cgi/fastfgi ?

★★★★★

а смысл использовать их как модули? какие от этого плюсы?

prohor
()

> какие плюсы/минусы запуска скриптов через mod_perl, mod_python

Плюсы:

1. Избавление от инициализации интерпретатора при каждом вызове CGI.

2. Возможность хранения некоторой информации в памяти между запросами.

Минусы:

1. Повышается трудоёмкость обработки запроса (если я не забыл, то там надо руками многопоточность обеспечивать).

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

>А, ну и ещё к минусам - надёжность. Глючный скрипт роняет сервер.

можно пример такого скрипта ? просто тут идея возникла, если на shared-хостинге используется mod_php, почему бы не использовать и что-нибудь другое.

borisych ★★★★★
() автор топика
Ответ на: комментарий от borisych

> можно пример такого скрипта ?

Давно дело было, уже не помню. Может, и не совсем роняет, но факт остаётся фактом - скрипт работает в пространстве апача и теоретически может его сломать.

watashiwa_daredeska ★★★★
()

mod_perl - реально большая часть старых скриптов на перле не запустится.
После некоторой доработки(http://perl.apache.org/docs/1.0/guide/porting.html) можно будет запустить в Apache::PerlRun режиме, что ВЕСЬМА неплохо повысит производительность. Грубо говоря хорошо написанный скрипт при переходе доработки не потребует.

Однако если хочешь добится ЕЩЕ большего прироста, то надо писать непосредственно под mod_perl приложения.

roller ★★★
()

mod_perl vs FastCGI:
Для mod_perl кол-во запущенных процессов будет меньше чем для FastCGI, в общем случае.
Если не использовать дополнительный возможности mod_perl то требования к написанию программ будут не очень большие.
Пример:
mod_perl:
use CGI qw/:standard/;
use strict;
print header();
print "<html><body>Hello World!</body></help>";

FastCGI:
use CGI qw/:standard/;
use CGI::Fast;
use strict;
while (my $q = new CGI::Fast) {
  print header();
  print "<html><body>Hello World!</body></help>";
}

Главный хинт для обоих случаев использовать use strict

roller ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.