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

Reply via email to