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.
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]