Ruby 1.9が速い

YARVの笹田さんがパズルのようなプログラムだとRuby 1.9系は2倍ぐらい速くなるということを言ってたので、sudoku.rbで問題を100問作るのにかかる時間を計ってみた。

Ruby 1.8.6で1分50秒(110秒)かかったところ、9月の頭にビルドしたRuby 1.9.0では、わずか38秒で終わった。2.9倍、ほとんど3倍速だ。問題が次々と表示されるテンポのよさを見て、Ruby 1.9は露骨に速くなってるなと実感した。

パズル系のことをプログラムの題材に取り上げる醍醐味は、ちょっと工夫するだけで劇的に速度向上ができたりすること、と誰かが言ってたので、少しだけやってみようと思ってみたりしている。で、fill_matrixとreduceの2つで、どっちがより時間を食ってるのかと思って調べてみたら、fill_matrixが4割強ということで、どっちも改善の余地ありと分かった。