I recently migrated my perl/CGI.pm scripts from an
IIS server to Apache 1.3.28 on the same Win2k server.
I saw immediate speed improvements using Apache::PerlRun.
Using 'practical mod_perl' as a guide I modified httpd.conf
so that I could access my scripts using mod_cgi, Apache::Registry,
or Apache::PerlRun by changing the URI. Here is the perl
section of my config file:
### BEGIN httpd.conf excerpt ###
ScriptAlias /serverdb/slow "E:/Inetpub/mod_serverdb/cgi-bin"
Alias /serverdb/cgi-bin "E:/Inetpub/mod_serverdb/cgi-bin"
Alias /serverdb/perl "E:/Inetpub/mod_serverdb/cgi-bin"
PerlModule Apache::PerlRun
PerlModule Apache::Registry
PerlModule Apache::DBI
<Location /serverdb/cgi-bin>
SetHandler perl-script
PerlHandler Apache::PerlRun
Options ExecCGI
PerlSendHeader On
Allow from all
</Location>
<Location /serverdb/perl>
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
PerlSendHeader On
Allow from all
</Location>
### END httpd.conf excerpt ###
My application seemed slower with Resistry! Using curl to get more
accurate statistics I found Registry to be almost 2-3x slower than
PerlRun.
### BEGIN sample stats ###
[EMAIL PROTECTED] root]# date +%M.%S.%N; curl -b cookies.txt -c cookies.txt
http://usvwoaahs52:8080/serverdb/cgi-bin/devlist.pl > /dev/null; date +%M.%S.%N;
29.41.134877000
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
100 421 0 421 0 0 295 0 --:--:-- 0:00:01 --:--:-- 1042
29.42.581020000
[EMAIL PROTECTED] root]# date +%M.%S.%N; curl -b cookies.txt -c cookies.txt
http://usvwoaahs52:8080/serverdb/perl/devlist.pl > /dev/null; date +%M.%S.%N;
29.53.880311000
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
100 834k 0 834k 0 0 259k 0 --:--:-- 0:00:03 --:--:-- 379k
29.57.111910000
### END sample stats ###
My application is pretty typical CGI.pm/DBD::Mysql fare. I am also
using HTML::Template with caching turned on.
Does anyone have an idea of what might be going on? Where should I
start? I have been reading up on performance issues and profiling code,
but this seems much higher level. I can't find any references with
anyone else having this experience.
Thanks!
-Todd