Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #68, АВГУСТ 2004 г.

Perl по-mod’ному

Докучаев Дмитрий aka Forb

Xakep, номер #068, стр. 068-108-4


Все познается в сравнении

Давай проверим, действительно ли mod_perl выигрывает по скорости у обычного perl-интерпретатора. Для замера времени используем модуль Benchmark, который заюзаем, например, в сценарии list.cgi.

use Benchmark;

$start=new Benchmark;

# код скрипта

$stop=new Benchmark;

$new=timediff($stop,$start);

print ">br<time: ".timestr($new)."\n";

Осуществляем запрос. Видим, что интерпретация сценария заняла 0.02 секунды системного времени. Повторно обновим запрос – время вообще не затрачено (из-за механизма кэширования). Теперь напишем аналогичный сценарий под консоль ($r-<print заменим на обычный print) и снова замерим время. Результат впечатляет: в среднем обработка сценария занимает 0,06 – 0,07 секунд. Естественно, что в обычных условиях клиент не заметит разницы в 0,04 секунды, но если к серверу будет несколько одновременных обращений, время увеличится в десятки раз.

INFO

Для того чтобы без геморроя тестировать скрипты, рекомендую создать html-форму для регистрации нового пользователя. Либо возьми уже готовое решение на http://kamensk.net.ru/forb/1/x/register.html.

WARNING

Все эксперименты были проведены на платформе ALTLinux, поэтому за *BSD ответственности не несу :). Впрочем, от любителей BSD я ни разу не слышал жалоб в адрес mod_perl.

WWW

Необходимый модуль ты всегда можешь найти в архиве www.perl.com/CPAN. Данный проект снабжен удобным поиском и сортировкой всех модулей по категориям.

CD

На компакт-диск мы заботливо выложили mod_perl, все исходники сценариев, необходимые для работы модули (Apache::DBI, DBI, Perl-CGI и ExtUtils::MakeMaker), а также свежую версию web-сервера Apache.

Назад на стр. 068-108-3  Содержание