如何監(jiān)控JRuby腳本的執(zhí)行
jruby本質(zhì)上也是啟動(dòng)一個(gè)jvm,然后去讀Ruby腳本并解釋執(zhí)行(也可以編譯),因此jprofiler理所當(dāng)然也可以去監(jiān)控jruby腳本的執(zhí)行。
JRuby腳本的執(zhí)行
jruby hello.rb等價(jià)于執(zhí)行:
java -Xmx378m -Xss1024k -Djruby.home=/usr/local/jruby
-Djruby.lib=/usr/local/jruby/lib Djruby.script=jruby org.jruby.Main hello.rb這一點(diǎn),你可以通過(guò)ps aux |grep jruby 看到。因此要監(jiān)控JRuby,配置jprofiler就簡(jiǎn)單了,在VM arguments加上這些參數(shù)(可以包括jruby的參數(shù)),比如我的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等等,從而實(shí)現(xiàn)監(jiān)控JRuby腳本了。
【編輯推薦】