Paul Mineiro wrote:
i've cleaned up the example to tighten the case:
the mod perl code snippet is:
---
my @cg;
open DIL, '>', "/tmp/seqdata";
print DIL $seq;
close DIL;
warn "length seq = @{[length ($seq)]}";
my $t = timeit (1, sub {
while ($seq =~ /CG/g)
{
push @cg, pos ($seq);
}
});
print STDERR timestr ($t), "\n";
---
which yields
length seq = 200001 at
/home/aerives/genegrokker-interface/mod_perl/genomic_img.pm line 634,
<GEN1> line 102
16 wallclock secs (15.56 usr + 0.01 sys = 15.57 CPU) @ 0.06/s (n=1)
and the perl script (command line) version is:
---
#!/usr/bin/perl
use Benchmark;
use strict;
open DIL, '<', "/tmp/seqdata";
my $seq = <DIL>;
close DIL;
warn "length seq is @{[length $seq]}";
my @cg;
my $t = timeit (1, sub {
while ($seq =~ /CG/g)
{
push @cg, pos ($seq);
}
});
print STDERR timestr ($t), "\n";
---
which yields:
length seq is 200001 at ./t.pl line 10.
0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU)
the data is pretty big, so i didn't attach it, but feel free to contact
me directly for it.
-- p
>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
>