You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Paul Mineiro <pa...@codegrok.com> on 2002/01/18 01:33:11 UTC

slow regex [BENCHMARK]

hi.  i'm running mod_perl 1.26 + apache 1.3.14 + perl 5.6.1

i have a loop in a mod_perl handler like so:
----
  my $stime = time ();

  while ($seq =~ /CG/og)
    { 
      push @cg,  pos ($seq);
    }

  my $etime = time ();

  warn "time was: ", scalar localtime ($stime), " ",
        scalar localtime ($etime), " ", $etime - $stime;  
----

under mod_perl this takes 23 seconds.  running the perl "by hand" (via 
extracting this piece into a seperate perl script) on the same data takes 
less than 1 second.

has anyone seen this kind of extreme slowdown before?

-- p

info:

apache build options:

CFLAGS="-g -g -O3 -funroll-loops" \
LDFLAGS="-L/home/aerives/lib -L/home/aerives/lib/mysql" \
LIBS="-L/home/aerives/genegrokker-interface/lib 
-L/home/aerives/genegrokker-interface/ext/lib -L/home/aerives/lib 
-L/home/aerives/lib/mysql" \
./configure \
"--prefix=/home/aerives/genegrokker-interface/ext" \
"--enable-rule=EAPI" \
"--enable-module=most" \
"--enable-shared=max" \
"--with-layout=GNU" \
"--disable-rule=EXPAT" \
"$@"

mod_perl build options:

configure_options="PERL_USELARGEFILES=0 USE_APXS=1 
WITH_APXS=$PLAYPEN_ROOT/ext/sbin/apxs EVERYTHING=1 
INC=$PLAYPEN_ROOT/ext/include -DEAPI"

perl -V:
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=linux, osvers=2.4.13, archname=i386-linux
    uname='linux duende 2.4.13 #1 wed oct 31 19:18:07 est 2001 i686 unknown '
    config_args='-Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i386-linux 
-Dprefix=/usr -Dprivlib=/usr/share/perl/5.6.1 -Darchlib=/usr/lib/perl/5.6.1 
-Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.6.1 
-Dsitearch=/usr/local/lib/perl/5.6.1 -Dman1dir=/usr/share/man/man1 
-Dman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3perl 
-Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Duseshrplib 
-Dlibperl=libperl.so.5.6.1 -Dd_dosuid -des'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef 
usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='cc', ccflags ='-DDEBIAN -fno-strict-aliasing -I/usr/local/include 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-DDEBIAN -fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='2.95.4  (Debian prerelease)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lgdbm -ldb -ldl -lm -lc -lcrypt
    perllibs=-ldl -lm -lc -lcrypt
    libc=/lib/libc-2.2.4.so, so=so, useshrplib=true, libperl=libperl.so.5.6.1
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Compile-time options: USE_LARGE_FILES
  Built under linux
  Compiled at Jan 11 2002 04:09:18
  %ENV:
    
PERL5LIB="/home/aerives/genegrokker-interface/lib/perl5:/home/aerives/genegrokker-interface/ext/lib/perl5:/home/aerives/lib/perl5"
  @INC:
    /home/aerives/genegrokker-interface/lib/perl5
    /home/aerives/genegrokker-interface/ext/lib/perl5
    /home/aerives/lib/perl5
    /usr/local/lib/perl/5.6.1
    /usr/local/share/perl/5.6.1
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.6.1
    /usr/share/perl/5.6.1
    /usr/local/lib/site_perl