Clover2開発日誌

Clover2というJavaのように静的な型を持つRubyのようなインタプリタの開発日誌です。https://github.com/ab25cqにて開発しています

JITいらないです。

--with-optimizeの方が重要です。--with-debugだと17秒かかる処理が--with-optimizeで3秒程度になります。この処理の場合、とりあえず、JITしても速度は変わりません。ループ以外のところだと逆に実行時のコンパイルに時間がかかり遅くなります。

ループで非常に重い処理をする場合だけ必要になるかもしれません。なんだったんだ。僕の3ヶ月は。

Javaのようにメソッド単位で何度も呼ばれるメソッドだけJITするようにするのが良いかもしれませんね。それだと意味あるかもしれませんね、、、。

早速そうしてみます。

 

とりあえず、今日はコンパイル時にLLVMのIRを出力する改造をしてみたりしましたが、結局ロード時の処理がよくわからないエラーで頓挫してます。出力されたIRソースファイルが1万行とか超えていたので、逆に遅くなりそうでしたし。

 

とりあえず、今から数回呼ばれたメソッドのみコンパイルするように、処理を施してみます。前述の処理が速くなればいいんですが、多分変わらないでしょうね。JITされても大して速くなってないんですよね、、、ほんと微妙に速くなったかな程度で、、、、うーん、がくり。

まあ、僕の冒険もこれで終わりです。後は拡張ライブラリを作れるようにしてソケットクラスを作ったら終わりです。

後はフォークするなり、何してもいいです。GPL縛りがあるので、それは守ってくだされば、どうされても結構です。オープンソースなのでLLVMの処理の参考になったりするでしょうし。

ああ、そろそろ、バージョン上げないといけないですね。1.5として今日リリースします。今日は残念記念としてやけ酒飲みます。がくり。

 

ただ、もう少しJITの仕方を工夫してみます。まだだ、まだ終わらんよ。