msumimz's diary

RubyにJITコンパイラを実装する個人プロジェクトの情報発信ブログです。

2014-03-07から1日間の記事一覧

先ほどのベンチマークのコードがどのようにコンパイルされたか

参考までに、先ほどのコードがどのようにコンパイルされたか見てみましょう。元のメソッドは下記のとおりです。 def m1 i = 1 sum = 0 while i <= 10000 sum += i i += 1 end sum end JITコンパイルされた結果は以下の通りです。*1 03450016 mov edi,3 ; i =…

最初のベンチマーク

これまでにif、while、メソッド呼び出し、ローカル変数のコンパイル処理を実装してきました。すでに簡単なプログラムが動くくらいになっていますので、この辺りでJITコンパイルされたコードの速度を確認してみたいと思います。コードは以下の通りで、1から10…

whileを実装しました

こんなコードが動きます。 def m1 i = 1 sum = 0 while i <= 10000 sum += i i += 1 end sum end precompile Object, :m1 puts m1 # => 50005000 たかがwhileにどれだけ時間かかってるんだという感じですが、機能追加に合わせて周辺コードを追加・変更してい…