Fiber の評価
まだコードに組み込んで使ったわけじゃないんで実際の使用感ではないですが。
f = Fiber.new do 300000.times do Fiber.yield false end Fiber.yield true end t = Time.now until f.resume end puts Time.now - t
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mswin32]
1.390625
C2D E6600 にて実行。
30万回回すのに1.4秒ならうまく使えば普通にゲームにも使えるとおもた。弾オブジェクトが毎フレーム1回 yield するとしても1000オブジェクト程度ならなんとか使える気もする。60FPSで1フレームのうち 1/3 の時間をyield にかけてると考えると重い、という意見になると思うけれど……。
追記:
VisualStduio2008 でビルドした Ruby1.9.1 patchlevel 378 で実行したら 0.46875 秒だった。おいこの速度差は何だ。