jrubyを使ってrailsアプリケーションを作成しているのだが、jruby特有のハマるポイントがいくつかある事が判ってきた。 気がついた点とその回避策は以下の通りです。
1.soライブラリに直接アクセスするライブラリは使用できない ex) rmagick,mongrel_cluster 考えてみたら当り前の事なんだが、使うまでまであまり意識したことがなかった。いくつかのライブラリはjrubyもサポートするようになってきたのだが、まだまだjruby非対応のライブラリは数多く存在する。 といっても、jruby上でrmagick等を使用したいこともある。その回避策の一例としては、rmagic等を利用する箇所だけをrubyを使用したコマンド(スクリプト)として作成し,jruby側でsystemから、そのコマンドを呼び出すなどの手法がある。
2.デバック環境が貧弱 いまはNetBeans 6.1betaを使って開発しているのだが、デバッガがまともに動作しない。というか、jrubyでデバッグできる環境が存在するのかどうかも疑問なのだが。 なのでjruby上でrails等のアプリケーションを動作させるときは、rubyで極力作りこんだあとに、jruby対応にしたほうが楽。
3.メモリは多めに積んでおく jrubyなので、はやりメモリは多めに積んでおく必要がある。メモリが少な目だと起動に時間がかかってしまうので。