[CentOS-devel] slow Perl on CentOS 5

Mon Sep 1 06:57:25 UTC 2008
Gavin Carr <gavin at openfusion.com.au>

On Sun, Aug 31, 2008 at 01:53:55PM +0100, Karanbir Singh wrote:
> There is now a perl package in the c5-testing repo that fix's these issues. 
> Unless I hear reports of breakage in the next 24 hrs, will push that out 
> via the fasttrack repo and make some announcements.
>
> Also, if you do test it - and it does work fine : let us know about that 
> too.

As others have reported, this seems to fix the main speed issues people 
were complaining about.

But it doesn't seem to have changed the overload referencing semantics
that DBIx::Class::StartupCheck tests for - this still fails on the new
perl:

  perl -MDBIx::Class::StartupCheck -e1

  WARNING: DBIx::Class::StartupCheck: This version of Perl is likely to exhibit
  extremely slow performance for certain critical operations.
  Please consider recompiling Perl.  For more information, see
  https://bugzilla.redhat.com/show_bug.cgi?id=196836 and/or
  http://lists.scsys.co.uk/pipermail/dbix-class/2007-October/005119.html.
  You can suppress this message by setting DBIC_NO_WARN_BAD_PERL=1 in your
  environment.

You can also test this with this script:

  #!/usr/bin/perl -w
  use strict;
  package Foo;
  use overload bool => sub { 0 };
  sub quack {
    print "quacks like a Foo\n"
  }
  package main;
  my %hash;
  my $o1 = \%hash;
  my $o2 = \%hash;
  bless $o1, 'Foo';
  print $o1 ? "o1 true\n" : "o1 false\n";
  print $o2 ? "o2 true\n" : "o2 false\n";
  $o2->quack();

which reports:

  o1 false
  o2 false
  quacks like a Foo

on both the old and new CentOS perls, vs. 

  o1 false
  o2 true
  quacks like a Foo

on Ubuntu 5.8.8.

Karanbir, do you know if those fixes you used include the four changesets
Nicholas references here?

  http://use.perl.org/~nicholas/journal/37274

I'm not sure how much this actually matters in practice, but thought I'd 
point it out. It's at least confusing if the performance issue is fixed 
but DBIx::Class still complains.

Cheers,
Gavin