2008-08-12 - 兼雑記

screenshot

http://d.hatena.ne.jp/Gimite/20080802/1217647596でちょっと思い出した、前からやってみたかった実験をやってみたらだいたい思った通りな感じだった。 class Fixnum def times i = 0 s = self while i yield i i += 1 end end end s = 0 1000000.times{|i| s+=i } p s みたいなコードを書くわけです。ご存知の通り、 Ruby の Fixnum#times は C 言語で実装されてます。それを Ruby で実装しなおしたら当然遅くなります。ホント時間...

http://d.hatena.ne.jp/shinichiro_h/20080812

問題の粒度と、ムーアの法則のせいかな。
ほんとだ、1.8 だと native の times のほうが断然早いけど、trunk だと僅かに ruby 版のほうが早い……。

http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/shinichiro_h/20080812