FAQ по perl и программированию для web Страница 11. Оптимизация CGI-программ
6. Ускоряемся
6.1 Моя CGI программа работает слишком медленно/создает большую нагрузку на сервер/etc. Что делать?
Вкомплировать интерпретатор в сервер (mod_dtcl, mod_perl, pyapache для apache, серверы с поддержкой servlets, AOL server с его поддержкой tcl).
Переделать на FastCGI или аналогичную технологию.
Переписать ее на компилируемый язык, если написано на скриптовом. Тем самым вы избавитесь от оверхедов интерпретатора.
Взять более мощный сервер (IBM RS/6k F50, к примеру :-)
6.2 Что такое mod_perl?
Это perl, вкомпилированный в apache, что придает многие преимущества:
Скрипты и модули компилируются один раз, что значитльно увеличивает скорость ответа на запрос HTTP (до 2000%);
Можно написать свои обработчики различных стадий запроса;
Кеширование сединений с сервером БД -- еще прибавка к скорости;
Директива SSI #perl позволяет в server-parsed html вызывать функции perl;
секции <perl></perl> в конфиге apache, для его конфигурирования;
Правда, ничего не дается даром и самый важный недостаток mod_perl -- огромный расход памяти: если обычный apache занимает при работе обычно меньше мегабайта, то apache с mod_perl размером в 10-15 Mb -- вполне нормальное явление. Но, при правильной настройке, значительная часть этой памяти будет shared между копиями процессов.
6.3 В чем разница между скриптом для CGI и mod_perl?
Программа CGI исполняется один раз, за тем умирает. Под mod_perl же она загружается и исполняется до смерти сервера (в случае использования Apache::Registry, см. далее), поэтому она требует более аккуратного описания - закрывать файлы, не использовать много памяти, и тд.
Наверное тоже одним из часто встречающихся приложений CGI являются счетчики посещений. Они стоят практически на каждой страничке, возможно даже и у вас. Но иногда вас не устраивает тот факт, что счетчик лежит где-то в другом месте... подробнее
Вам иногда хотелось наверное узнать,кто же смотрит на вашу страничку,откуда и когда ваша страничка посещалась.
Бывают такие вопросы? Кто-то считает,что ответить на них нельзя. Но вы не верьте этому расхожему мнению... подробнее
Я так решил назвать эту часть,потому что это название больше всего соответствует.
Я вам в этой части расскажу о всяких тонких и неочевидных местах и о том как с этим боротся... подробнее
CGI-программы -не самые простые в отладке,по сложности отладки они способны сравнится лишь с отладкой драйверов. Вся сложность заключается в том,что скрипт выполняется не как обычная программа. Он выполняется в специальной среде сервера,которая создается при клиентском запросе... подробнее
Когда говорят о каком-то популярном сайте,то частенько к преимуществам относят и анимацию. Действительно,когда изображение изменяется (и особенно к месту ;)),то это смотрится и пользователю нравится... подробнее