JRuby:1.0.3解决兼容性问题,1.1改进性能

JRuby 1.0.3 已经发布了,它是JRuby 1.0.x分支的另一个稳定版。在所修正的错误当中,这一版修正了一些 与Rails 2.0相关的问题,这些问题是由于Rails 2.0现在需要OpenSSL所引起的。

Nick Sieger,JRuby团队成员,报告了在JRuby 1.0.3中的另一个修改:
正常情况下,一个1.0.3版本不至于让人这么兴奋,但是这一回,主干(trunk)的内部API(好几个JRuby扩展所依赖的)开始产生分叉。很不幸,这迫使我们面临一个抉择:要么分叉并维护每个扩展的两个版本(一个是1.0.x,另一个是1.1及更高版),要么中止向后兼容。最终我们选择了后者,宁愿是一个单一教派,也不愿陷入并行版本的苦境。
根据这一点,Nick继续给出了一个有用的表格,显示Ruby库和Gem与JRuby版本的对应关系:
  1.0 - 1.0.2, 1.1b1 1.0.3, 1.1b2
Library  
rubygems <= 0.9.4 <= 0.9.4, = 1.0 *
rails <= 1.2.6,
>= 2.0.x †
any
activerecord-jdbc <= 0.6 >= 0.7
jruby-openssl <= 0.0.5 >= 0.1
goldspike 1.3 1.4
mongrel any ‡ 1.1.2

注意Rails 2.0可以与所有版本一起工作,虽然在表格左手侧JRuby版本(1.0 - 1.0.2, 1.1b1)一列,jruby-openssl <= 0.5 是需要被安装的。

在JRuby 1.1的新闻中, 花在改善正则表达式支持和性能上的工作看起来已经兑现。 Tim Bray展示了一个用Ruby写的工具的运行时间,运行是在不同Ruby版本下进行的。最后两行(摘录至此)显示了JRuby 1.1中最近的性能提升(值越低越好):

Elapsed User System
JRuby 1.1b 62.5 63.4 1.3
JRuby trunk 43.5 44.5 1.0

这个 JRuby trunk是2007年12月17日源文件的checkout,而这个 JRuby 1.1b是几个星期前发布的。在Tim文章的评论中,JRuby的Charles Nutter解释了这两者相当多的区别:
从JRuby 1.1b1到trunk的改进几乎全部归功于Marcin Mielczynski令人惊讶的举动——他将Oniguruma移植到了JVM。我们第一次有了真正的基于byte数组的regex引擎,这意味着JRuby regex性能得到了极大的提升。

查看英文原文:JRuby: 1.0.3 addresses compatibility issues, 1.1 performance update

你可能感兴趣的:(JRuby:1.0.3解决兼容性问题,1.1改进性能)