JRubyの起動を早くしたい

MacJRubyのアプリを開発していて、何度もJRubyを起動するので起動時間の遅さが気になった


結論

export 'JRUBY_OPTS=-X-C'

Macbook
しておくと、MacbookAirでは0.5秒ぐらい、MacbookProでは0.3秒ぐらい起動が速くなった
あんまり嬉しくない

普段使っているmacbook pro

ruby -rubygems -ve 'require "active_support"; puts Time.now'  2.92s user 0.20s system 85% cpu 3.663 total
ruby -X-C -rubygems -ve 'require "active_support"; puts Time.now'  2.67s user 0.20s system 80% cpu 3.690 total

0.2〜0.3秒ぐらい速くなる



JRubyJavaの起動オプションを渡せるのだけど、毎回付けるのが面倒くさい。でもrvmで使っているのでrubyコマンドそのものにaliasを付けてしまうとmatz rubyを使う時に影響がでる。

そこで、 ~/.rvm/rubies/jruby-1.5.3/bin/ruby を読んでみた。
$JRUBY_OPTSと$JAVA_OPTSがセットされていたら、JRuby起動時に使ってくれてる。(322行目から先あたり)

必要なのを環境変数に入れておくといい。


Javaはclient版を使うと起動が速くなるらしい。Java1.6の64bit版ではserver版しか起動できないので、開発時は32bit版を使いたい。
/Applications/Utilities/Java Preferences.app で設定できるはずなのだが、32bitを優先して起動するように設定して、terminalを再起動してもMacごと再起動しても64bit serverが起動してしまう


参考

起動時に確保するメモリサイズの指定(-J-Xmx512M とか)は体感できるほどではなかった