make benchmark OPTS="-r 5"をやってみた
authorNariさん試してくださってありがとうございます。
お祭も無事終わり(お世話になった人たちに非常に感謝しています。ここを読んでいる人はいないと思うけど・・・)、make benchmark OPTS="-r 5"で試してみました。
コアを吐く不具合は、次の1行を加えることで直りました。
static int garbage_collect(rb_objspace_t *objspace) { struct gc_list *list; rb_thread_t *th = GET_THREAD(); INIT_GC_PROF_PARAMS; heap_cache = NULL; /* 追加 */
make benchmarkは2つのバージョンの処理系で実行すると、なぜか後から実行したものが遅くなるので、改良前・改良後の順番を代えて試してみました。1.9.0mcと出ているほうが改良版です。
先に改良前。
benchmark results: minimum results in each 5 measurements. name ruby 1.9.0 (2008-07-21 revision 15675) [i386-cygwin] ruby 1.9.0mc (2008-07-21 revision 15675) [i386-cygwin] app_answer 0.227 0.890 app_erb 4.887 5.800 app_factorial 1.158 1.816 app_fib 2.077 2.575 app_mandelbrot 0.781 1.468 app_pentomino 86.971 82.398 app_raise 2.715 3.080 app_strconcat 1.290 1.953 app_tak 3.148 4.156 app_tarai 2.455 3.409 app_uri 4.401 5.183 io_file_create 22.051 22.486
先に改良後
benchmark results: minimum results in each 5 measurements. name ruby 1.9.0mc (2008-07-21 revision 15675) [i386-cygwin] ruby 1.9.0 (2008-07-21 revision 15675) [i386-cygwin] app_answer 0.223 0.913 app_erb 4.949 5.721 app_factorial 1.161 1.846 app_fib 1.921 2.784 app_mandelbrot 0.807 1.468 app_pentomino 81.293 87.693 app_raise 2.420 3.764 app_strconcat 1.318 2.354 app_tak 3.492 5.011 app_tarai 2.798 4.419 app_uri 4.598 5.104 io_file_create 21.113 22.225
authorNariさんの言うとおりあまり効果は無いですね。前は測り方が悪かったみたいです。
ただ、app_pentominoだけははっきり効果があるといってもいいんじゃないかなと思います。ある程度長く実行して、GCがガンガン動くと差が出てくるのかなー、もうちょっと追ってみます。