ベンチマーク

そこで良いベンチマークはないかと探してみた。
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all
様々な言語で実装した際に速度やメモリ効率、ファイルサイズなどを比較したサイトだ。これによるとCはRubyの50倍程度の速度だという。ちなみに文字列操作っぽい項目を外して集計すると100倍程度になる。こちらの方がRubyの遅い部分をCで置換する場合の実感に近い。
実際Ruby処理系のベンチマークと言っても、Cで書かれた関数を呼んでいるだけならばC+オーバーヘッドくらいに収まるわけだ。そのような処理系では項目ごとに有利不利がはっきり出てしまう。だから単純に比較するのは難しい。
もちろん、分野を絞れば明確な比較が出来る。例えば、1からNまで整数の和を取るだとか。この場合は数値をオブジェクトとして扱っているかだとか、ループに手を入れられるかどうかだとか、その辺りの自由度が効いてくる。どちらにせよ、Cとは桁違いに遅い訳だが。