RHEL 5(.2) の perl-5.8.8-15.el5_2.1 で例のバグが治っていた
例のバグとは,あの overload rebless のバグを解消するために bless
にパフォーマンスペナルティが発生していたやつです。
ずいぶん前*1ですが,RHEL 5(すなわち CentOS 5 も含む)の Perl 5.8.8 の updates の perl-5.8.8-15.el5_2.1 でパフォーマンス解消パッチがあてられてリリースされてました。ベンチマークとってみたら,たしかに治っているぽいです。
なお patch#28775 をあてるタイプのワークアラウンドぽいです。なので Perl 5.10(5.9.4-)系で根本的に治したのとは手段が違います。くわしくは前述の overload の rebless バグについて - daily dayflower を参照してください。
# Perl 5.8.10 だとどういうコードなんだろう
以下 SPEC の関連する diff。
-%define perlrel 10%{?dist}.3 +%define perlrel 15%{?dist}.1 # work around annoying rpath issue Patch21: perl-5.8.8-rpath-make.patch +# perl bless/overload performance problem +Patch26: perl-5.8.8-U28775.patch +Patch24254: perl-5.8.8-bug24254.patch +Patch31996: perl-5.8.8-U31996.patch +Patch32018: perl-5.8.8-U32018.patch +Patch32019: perl-5.8.8-U32019.patch +Patch32025: perl-5.8.8-U32025.patch %patch21 -p1 +%patch26 -p1 + # %patch24 -p1 +# performance problems - upstream changes 27509, 27512 %patch27509 -p1 %patch323571 -p1 +# another changes for performance problem +%patch24254 -p1 +%patch31996 -p1 +%patch32018 -p1 +%patch32019 -p1 +%patch32025 -p1 %changelog +* Thu Aug 28 2008 Marcela Maslanova <mmaslano@redhat.com> - 4:5.8.8-15.el5.1 +- add upstream fix for bless/overload problem (changes 31996,32018,32019, + 32025) and perl-5.8.8-bug24254.patch. Without this patch had bless + poor performance. +- Resolves: rhbz#460308 +
*1:自己レポジトリを使っていたので全然気づいてなかったです。