jruby

jruby

JRuby,一個採用純Java實現的Ruby解釋器,由JRuby團隊開發。它是一個自由軟體,在CPL/GPL/LGPL三種許可協議下發布。主要開發者有Charles Nutter、Thomas Enebo、Ola Bini、Nick Sieger等。

簡介


JRuby是面向Ruby、基於Java虛擬機(JVM)的一種解釋程序,它結合了Ruby語言的簡易性和功能強大的JVM的執行機制,包括與Java庫 全面集成。Rails徹底加快及簡化了Web應用的開發,不過它讓人覺得不夠成熟,特別是在高端企業級功能方面。另一方面,Java平台及其虛擬機、庫和 應用伺服器的速度、穩定性和功能方面卻一直在提升,現在已被公認為是開發高端伺服器。

使用技巧


jruby本質上也是啟動一個jvm,然後去讀ruby腳本並解釋執行(也可以編譯),因此jprofiler理所當然也可以去監控jruby腳本的執行。
執行
jruby hello.rb等價於執行:
java -xmx378m -xss1024k -djruby.home=/usr/local/jruby
-djruby.lib=/usr/local/jruby/lib djruby.script=jruby org.jruby.main hello.rb這一點,你可以通過ps aux |grep jruby 看到。因此配置jprofiler就簡單了,在vm arguments加上這些參數(可以包括jruby的參數),比如我的vm arguments配置如下:
-server -xmx378m -xss1024k -djruby.script=jruby -djruby.thread.pooling=true
-djruby.jit.threshold=0 -djruby.compile.fastest=true
-djruby.home=d:jrubyjruby-1.1rc2 -djruby.lib=d:jrubyjruby-1.1rc2lib
main class or executable jar填上:org.jruby.main。然後就是arguments一欄填上你的腳本位置:
d:rubylibhello.rb
最後,別忘了將jruby/lib目錄下的bsf.jar和jruby.jar加入class path。
大功告成,你可以用jprofiler去觀察gc、線程和鎖、heap等等了。

特點


jruby
jruby
JRuby是一個純Java實現的Ruby解釋器。通過JRuby,你可以在JVM上直接運行Ruby程序,調用Java的類庫。很多Java編寫的Ruby IDE都是使用JRuby來解釋語法的。 2006年,SUN雇傭了兩名JRuby團隊的兩名核心成員Charles Nutter和Thomas Enebo全職開發JRuby,後來ThoughtWorks也雇傭了一名JRuby項目的核心成員全職開發JRuby。
自此JRuby發展非常迅速,立刻推出一個50%性能提升的版本。最近又發布了0.9.8版,正式宣布官方支持Rails,單元測試有98%成功通過(也是因此稱作0.9.8版?),現在開發小組全力修復剩下的2%,將會很快發布100%支持Rails的JRuby 1.0。但是目前JRuby的主要精力集中在功能實現上,性能還不如理想,1.0發布之後應該就會全力解決性能問題。
JRuby 1.0已經來了,可以在JVM上面運行Rails,你還等什麼。