From: Nobuyoshi Nakada Date: 2010-07-04T09:55:16+09:00 Subject: [ruby-dev:41802] Re: rb_to_float が遅い なかだです。 At Sat, 3 Jul 2010 16:09:01 +0900, whiteleaf wrote in [ruby-dev:41795]: > バグと言ってよいのかわからなかったのでチケットにはしませんでした。 BugあるいはFeatureでも登録自体はご自由にどうぞ。 > 上の例は、OpenGL で大量の頂点データを glBufferSubData という関数が使えるためのデータに > 変換しているシーンを想定しています。ポリゴンの頂点データは大量にあることが普通なので、無駄に多くしてある > わけではありません。 > > もちろん最初から float に変換しておけば問題ないわけですが、一回ひっかかったので……。 > > rb_convert_type ではなく rb_Float を使えば速くなりました。 これで速くなるのはFixnum,Bignum,Stringの三つ(とそのサブクラス)だ けですが、これだけ速くなってうれしいんでしょうか。その代償として to_fのオーバーライドが無視されるようになりますし。 そもそもパフォーマンスを考えるのであれば、Array#packでFloatに変 換させること自体が一時オブジェクトを大量に使い捨てにすることにな るので、避けるべきではないかと思いますが。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦