C化

C化する基準が何となく判った気がする。
まず主となるメソッドについてプロファイルを取る。そうするとどこが遅いのかが判る。次にその遅かったメソッドについてプロファイルを取る。これを繰り返して行くと最終的にRubyの基本的な制御構造が律速になるメソッドが表れるはずだ。
今までの経験上、forループなどで使われているeach()が律速になりやすい。他の実装と比べるとRubyはそれらの制御構造が遅いように思う。だからそのようなメソッドをC化すると目に見えて速くなるというわけだ。
あとは再び主メソッドに戻ってプロファイルを取る。遅ければまたC化する箇所を探せば良い。これでも速度が足りなければそれはRubyで書くべきものではない。もっと速い言語や実装で全面的に書き直すしかない。