BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JRuby: 1.0.3が互換性問題と1.1パフォーマンスアップデートを提示する

JRuby: 1.0.3が互換性問題と1.1パフォーマンスアップデートを提示する

安定したJRuby 1.0.xブランチのもう一つのリリースであるJRuby 1.0.3が入手可能となった(source)。修正されたバグの中でも、このリリースは現在OpenSSLを必要とするRails 2.0によって引き起こされるRails 2.0との問題(source)を修正する。

RubyのチームメンバーであるNick Sieger氏はJRuby 1.0.3におけるもう一つの変化を報告している(source)
通常1.0.3リリースはそれほど興奮させられるものではないのですが、このサイクルの間trunkの内部のAPI(いくつかのJRuby拡張が依存している)が分岐し始めました。あいにくこれによって私達はある決断に迫られます。分岐してそれぞれの拡張の二つのバージョンを保持するか(一つは1.0x用 に、もう一つは1.1以上用に)、もしくは下位互換性を壊すかどちらにするかです。私達は分裂した後のバージョンアップ地獄がイヤだったので、結局後者を選びました。
この点を踏まえてNick氏はRubyライブラリとGemsが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

テーブルの左側(1.0 - 1.0.2, 1.1b1)のJRubyのバージョンにも関わらずRails 2.0は全てのバージョンにおいて動作することに気付いてほしい。そしてjruby-openssl <= 0.5 がインストールされる必要がある。

JRuby 1.1ニュースの中でRegular Expressionサポートとパフォーマンスの向上のために成された努力(source)が報われたようにみえる。Tim Bray氏は異なるRubyバージョンの下で動作するRubyで書かれたユティリティ用のランタイムを表示した(source)。最後の2列(ここで抜粋されている)は、JRuby1.1で成されたごく最近のパフォーマンス向上を示している(低い値のほうがより良い)。

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


JRuby 1.1bが2,3週間前のリリースであった一方、JRuby trunkは2007年12月17日のソースからのチェックアウトである。考えられる相違点はJRubyのCharles Nutter氏がTim氏の記事のコメント欄において解説している。
JRuby 1.1b1とtrunk間での向上は、ほとんど全体的にMarchin Meilczynski氏の驚くべきOnigurumaからJVMへのポートに起因している。一番最初として私達にはJRuby regexパフォーマンスが非常に向上したことを意味する実際的なバイトベースのregexエンジンがある。
原文はこちらです:http://www.infoq.com/news/2007/12/jruby-103x-11trunk

この記事に星をつける

おすすめ度
スタイル

BT