jruby

王朝百科·作者佚名  2010-01-28
窄屏简体版  字體:   |    |    |  超大  

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,你还等什么。

使用jprofiler监控jruby脚本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等等了。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航