perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David E. Wheeler <>
Subject Startup Slow with DSO mod_perl
Date Fri, 03 Apr 2009 21:38:35 GMT
Hey Guys,

So I've been doing some testing of Bricolage with mod_perl 1.31rc7 and  
with mod_perl 2.04 (and Perl 5.10 and Apache 1.3.41 and 2.2.11), and  
I'm finding something very strange: Apache is *very* slow to start  
when mod_perl is a DSO.

The bit that's slow, curiously, is this:

   PerlModule Bric::App::ApacheConfig

What that module does is load all of the Bricolage Perl modules and  
dependencies, generate some virtual host configuration, and then  
either insert it into $Apache::ReadConfig::Include (under mod_perl 1)  
or write it to a file and include it from httpd.conf using the Include  
directive. Under statuc mod_perl 1, this all happens very fast;  
Bricolage starts up in a couple of seconds at most. But under  
mod_perl1 with a DSO or mod_perl2 (also a DSO), it's very slow: 25-30  
seconds. If I comment-out the Bric::App::ApacheConfig call, it's fast  
again (although Bricolage is not, of course, properly configured).

Now, the really odd thing is that Bric::App::ApacheConfig seems to run  
just fine, and quickly, no matter what. If I put some `print STDERR`  
statements at the end of it, they're output to the log very quickly.  
If I put another PerlModule after the Bric::App::ApacheConfig one, and  
just have *it* print to STDERR, that's also very quick. So something  
is happening after it runs. Or so it seems.

So, anyone have any idea what might be happening here? I've been  
battling this for hours and I'm completely stumped. FWIW, I'm on Mac  
OS X 1.10.5 (Darwin Kernel Version 9.6.0).

Thanks for any insights. I'm going to see if I can break this on my  
Ubuntu server, too.



To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message