Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что лучше FastCGI или mod_perl... 
:(
    Опции темы
Дмитрий Волков
Дата 7.3.2004, 15:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Появилась задача ускорить работу скриптов. В связи с этим возникло несколько вопросов.
1. Что даст больший результат mod_perl или fastcgi (может есть ещё лучшие альтернативы)?
2. Есть основной скрипт к которому происходит частое обращение. Он в свою очередь содержит подрубаемые модули (use Модуль; use Модуль2; и т.д.). На сколько я знаю mod_perl один раз компилирует все модули, который использовал скрипта потом их держит в памяти пока Apache не перезагрузится. Мало того Apache можно указать, что компилировать при старте. Так вот вопрос: есть ли эти возможности у fastcgi.
3. Позволяет fastcgi держать постоянное соединение с MySQL посредством DBI?
  Вверх
korob2001
Дата 9.3.2004, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Цитата

1. Что даст больший результат mod_perl или fastcgi (может есть ещё лучшие альтернативы)?

Давай для начала разберёмся что делает FastCGI, а затем посмотрим, что делает mod_perl!

FastCGI - расширение сервера, позволяющее преобразовывать CGI-сценарии в постоянные приложения типа сервер с продолжительным выременем жизни. Сервер при запуске порождает процесс FastCGI для каждого определённого CGI-скрипта, и эти процессы отвечают на запросы до тех пор, пока они не будут явно завершены. Если ожидается, что кокое-то приложение будет использоваться чаще других, можно создать несколько процессов для обработки одновременных запросов.
У такого подхода есть несколько приимуществ. Обычная CGI-программа требует при вызове дополнительных временных затрат на порождение процессов и интерпретирование кода. Если код требует дополнительной инициализации, это тоже добавляется к затраченому времени. В FastCGI приложении таких проблем нет. Здесь при каждом запросе не порождается новое приложение, вместо этого вся инициализация происходит при первом запуске. Так как время жизни этих приложений достаточно продолжительное, они позволяют сохранять данные между запросами, что тоже является преимуществом.
Еще, если в приложении используется CGI.pm, то можно задействовать интерфейс к FastCGI - модуль CGI::Fast, включённый в стандартный набор модуля CGI.pm.

mod_perl - расширение сервера Apache, встраивающее Perl в Apache, обеспечивая Perl интерфейс к Apache API. Это позволяет на Perl разрабатывать модули к Apache, для того, что бы обрабатывать определённые уровни запросов от клиента.
Так как Perl встроен в сервер, нет затрат на запуск внешнего интерпретатора. Кроме того, можно загрузить и скомпилировать все нужные внешние Perl-модули на стадии загрузки сервера, а не в процессе выполнения приложения.
Кстати, самым распространённым модулем Apache/Perl является Apache::Registry, он эмулирует CGI окружение, позволяя писать CGI пограммы, выполняющиеся в mod_perl. Также были зафиксированы случаи, когда пользователи сообщали, что при совместном использовании mod_perl и Apache::Registry производительность увеличивалась до 2000%. С такими скриптами, даже PHP не потягается. ;)

Теперь настало время познакомиться с Apache::Registry.

Apache::Registry - обработчик ответов, другими словами он отвечает за генерацию ответов, посылаемых клиенту. Он создаёт уровень над CGI программами, запускает программы и посылает результат клиенту. Можно также реализовать собственный обработчик ответов для обслуживания запросов. Как это делается, можно прочитать в книге Writing Apache Modules with Perl and C, Линкольна Штейна и Дуга Макичерна, издательство O'Reilly.


Второй вопрос тоже получил свой ответ, а что касается третьего вопроса:
Думаю что FastCGI или mod_perl, а также DBI позволят делать всё, что позволяет модуль DBI в обычном CGI-приложении. Правда я сам никогда этим не пользовался, как-то не приходилось, но это не тяжело проверить.

Удачи.

Это сообщение отредактировал(а) korob2001 - 6.4.2004, 21:04


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.