
fbis++
overloadと再blessの問題 - Unknown::Programming
でも現状の対策としてはどうすればいいのかちょっと思いつかないですね。リファレンスを捜索してoverloadフラグを立てる、なんてことをするモジュールとか作れるのかしら・・・。この段落を見て全てが繋がった!
以前騒がせたFedoraCoreやCentOS系の遅いPerlのパッチの件で、overloadすると極端に遅くなるって話題ですが、問題のpatchのコメントに注目すると
This is a hack cope with reblessing from class with overloading magic to one without (or the other way).まさしく、今回id:fbisが指摘した事へのパッチだった訳ですね!
長年の疑問がすっきり解消しました!
で、v5.9.4から解消されたという事で、もしや?と思ってv.5.10.0RC2で調べてみました。
$ perl /tmp/overload.pl Benchmark: timing 1000000 iterations of not overload, overload... not overload: 2 wallclock secs ( 1.51 usr + 0.00 sys = 1.51 CPU) @ 662251.66/s (n=1000000) overload: 1 wallclock secs ( 1.48 usr + 0.00 sys = 1.48 CPU) @ 675675.68/s (n=1000000)おお!変わってない! Posted by Yappo at 2007年12月12日 19:44 | TrackBack | Perl