JRuby 在众多 Ruby VM 社区中称得上是比较活跃的一个社区,几乎每个月都会发布新版本,继去年 12 月发布了 1.5.6 之后,近日,JRuby 团队“如期”在其官方网站发布了 JRuby 1.6 的首个 RC 版本,即 1.6.0.RC1。
据称,1.6.0.RC1 是迄今为止最大的一个发布,有超过 2000 次提交,解决了 265 个问题。该版本大大改进了对 Ruby 1.9.2 的兼容性,提升了性能,针对 Windows 用户的用户体验做了优化,还加入了 Ruby Summer of Code 2010 中的 C 扩展支持,以及 RubyGem 的 Maven 支持。
官方声明中还列举了以下一些主要特性:
- 内置剖析器
- RubyGems 1.4.2
- 不再捆绑 RSpec
- jruby-complete.jar 包含 1.9 标准库
- 改善嵌入 API
此次新增的内置剖析器得到了 RedCar 作者 Dan Lucraft 的帮助,JRuby 核心开发者 Charles Nutter 还发表了一篇博客,通过示例介绍了–profile.flat 和–profile.graph 这两个新参数的用法:
~/projects/jruby ➔ jruby --profile.flat -e "def foo; 100000.times { (2 ** 200).to_s }; end; foo" Total time: 0.99 total self children calls method ---------------------------------------------------------------- 0.99 0.00 0.99 1 Object#foo 0.99 0.08 0.90 1 Fixnum#times 0.70 0.70 0.00 100000 Bignum#to_s 0.21 0.21 0.00 100000 Fixnum#** 0.00 0.00 0.00 145 Class#inherited 0.00 0.00 0.00 1 Module#method_added
根据 Charles 的另一篇博客,JRuby 1.6 RC 版的启动速度也得到了不少改进,尤其是装有大量 Gem,且需要在启动时加载 RubyGems 的情况。他的 JRuby 中有将近 500 个 Gem,之前执行一次 require 'rubygems’少说也要 6 秒多,改进后时间缩短至 1 秒内。根据笔者试用,仅有少量 Gem 时,效果也非常明显,可以从 2 秒降至 1 秒内。
希望 JRubyist 们能更多地试用 JRuby 新版本,并提出宝贵意见,尤其是其 1.9 模式,也为 JRuby 的成长献上一份绵薄之力。
评论