On Wed, 2007-10-17 at 16:19 +0100, Nigel Metheringham wrote:
> Jon,
> 
> You should look at RH bug #196836 for information on the Red Hat
> perl bug that causes this.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=196836
> 

Interesting, well found.

As background for those who missed yesterday's IRC discussion, it was
identified that the original slow-down problem was specific to CentOS 5
standard perl-5.8.8-10 RPM (and presumably all other distributions using
the same).

According to the bug report above, the problem should be fixed in RPM
perl-5.8.8-22 and later, so I compiled and installed perl-5.8.8-24 and
re-ran Nigel's benchmark.  The results show that the patched patched
version in 5.8.8-24 is still about 2-4 as slow with/without my patch to
ResultSourceHandle.  This compares against 8-12 times slower with
perl-5.8.8-10.

Summary:
                               effect of ResultSourceHandle patch      
perl-5.8.8-10 RPM                    8-12 times faster
perl-5.8.8-24 RPM                    2-4 times faster
perl-5.8.8 compiled from source      no difference
perl-5.9.5 compiled from source      no difference

Bring on 5.10, I guess.

Using the code put up by Brandon to check for the bug on various
systems, here are the results:

O/S     Perl Version            has_bug   bad_overload_performance      

Debian    5.6.1                 Y               N
FreeBSD 5.4-9 5.8.8             Y               N
CentOS 4  5.8.8-4 RPM           Y               N
CentOS 5  5.8.8-10 RPM          N               Y
CentOS 5  5.8.8-24 RPM          N               Y
CentOS 5  5.8.8 source          Y               N
CentOS 5  5.9.5 source          N               N

which is consistent with the benchmarks, at least w.r.t. overload
performance.


-- 

Jon


_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]

Reply via email to