On Jun 18, 7:29 pm, Nicholas Clark <[email protected]> wrote:
> On Fri, Jun 18, 2010 at 03:38:07AM -0700, Martin wrote:
> > The code in question is:
>
> > my $ref = ref($self->{_content});
> > if (!$ref) {
> >   $self->{_content} .= $$chunkref;
> > }
>
> > and I could see the concatenation perhaps taking longer and longer as
> > it is concatenating 4K chunks each time until it reaches 30Mb. I
> > didn't understand why the 320s was reported on the ref() though and
> > that is what confused me.
>
> That's what I would have thought.
> Assuming that the line number attribution is accurate, and it's something
> in the hash lookup and reference taking, that's most strange. I don't think
> that there's any copying involved.
>
>
>
> On Fri, Jun 18, 2010 at 02:26:53PM +0100, Tim Bunce wrote:
> > On Fri, Jun 18, 2010 at 05:47:50AM -0700, Martin wrote:
>
> > > I upgraded to Perl 5.10.1 and problem has gone away.
> > > It is going to be a PITA to do this permanently but I seem to have
> > > little choice.  I've no idea what problem was fixed between 5.10.0 and
> > > 5.10.1 which caused this, I had a quick look in perldelta but nothing
> > > struck me.
>
> > There were weird things with bless, overload and pathalogical hases
> > around the time of 5.10.0 but I didn't need to pay attention (since
> > we're using 5.8 .8 now and 5.12.1 soon) so I didn't.
>
> > Maybe Nicholas can shed some pumpkin light on it.
>
> > Please also give us your perl -V output, for the record.
>
> -V for both would be interesting.

perl -V for working 5.10.1.

Summary of my perl5 (revision 5 version 10 subversion 1)
configuration:

  Platform:
    osname=linux, osvers=2.6.31-15-generic, archname=i686-linux
    uname='linux betdevel 2.6.31-15-generic #50-ubuntu smp tue nov 10
14:54:29 utc 2009 i686 gnulinux '
    config_args='-de -Dprefix=/home/martin/perl5101'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define,
usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/
usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/usr/
local/include'
    ccversion='', gccversion='4.4.1', 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, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib /usr/lib64
    libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.10.1.so, so=so, useshrplib=false,
libperl=libperl.a
    gnulibc_version='2.10.1'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -
fstack-protector'


Characteristics of this binary (from libperl):
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                        USE_LARGE_FILES USE_PERLIO
  Built under linux
  Compiled at Dec  3 2009 16:41:19
  %ENV:
    PERL5LIB="/home/martin/bet/tools/modules/BET/lib:/home/martin/bet/
cgi"
  @INC:
    /home/martin/bet/tools/modules/BET/lib
    /home/martin/bet/cgi
    /home/martin/perl5101/lib/5.10.1/i686-linux
    /home/martin/perl5101/lib/5.10.1
    /home/martin/perl5101/lib/site_perl/5.10.1/i686-linux
    /home/martin/perl5101/lib/site_perl/5.10.1
    .

> 5.10.0 and 5.10.1 generate an identical optree for
>
>     my $ref = ref($self->{_content});
>     if (!$ref) {
>       $self->{_content} .= $$chunkref;
>     }
>
> and the blame annotation:http://perl5.git.perl.org/perl.git/tree/maint-5.10
> shows no changes to the code since 5.10.0 was shipped, so I can't see why it
> would differ.
>
> Nicholas Clark

-- 
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.

Group hosted at:  http://groups.google.com/group/develnytprof-dev
Project hosted at:  http://perl-devel-nytprof.googlecode.com
CPAN distribution:  http://search.cpan.org/dist/Devel-NYTProf

To post, email:  [email protected]
To unsubscribe, email:  [email protected]

Reply via email to