前回の投稿から期間が空いてしまいました。実装にはいろいろ不十分なところも多いのですが、きりがないので記事にすることにします。 前回のベンチマークでは、JITを実装したものの、単純なJITコンパイラではMRIのインタープリタによる実行速度に勝てないという結果でした。これに対する対処として、基本的な型解析とメソッドのインライン化の最適化を導入したというのが今回の話題です。 https://github.com/msumimz/ruby/tree/rbjit まずは、ベンチマークの結果から。 $vc10/Release/miniruby examples/perf_while.rb user system total real interprited 12.012000 0.000000 12.012000 ( 12.010687) JIT compiled 1.186000 0.000000
![最初の最適化:型解析とメソッドのインライン化 - msumimz's diary](https://cdn-ak-scissors.b.st-hatena.com/image/square/94cf61c6bd3119ce8d89705d703ebba908d2f2e8/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fmsumimz%2F20140701%2F20140701221044.png)