BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース RubiniusがEngineYardのAppCloudに登場、1.9とGIL除去に関する作業は継続中

RubiniusがEngineYardのAppCloudに登場、1.9とGIL除去に関する作業は継続中

原文(投稿日:2011/04/27)へのリンク

Rubiniusは、RubyとC++によって書かれたRuby実装であり、モダンなGC実装、(LLVMを利用した)強力なJIT、高速なデバッガやプロファイラによってMRIと競うことを目的としている。
Rubiniusは現在バージョン1.2.xだが、最近また1つその成熟度合いを示すマイルストーンに到達した:EngineYardがRubiniusをそのAppCloudのRubyランタイムの選択肢の1つとしてを提供したのだ。

InfoQではRubiniusのオリジナルクリエータであり長期にわたる開発者であるEngineYardのEvan Phoenix氏にRubiniusの現在と未来について語ってもらった。

InfoQ: AppCloudとそのベータプログラムとは何でしょうか? ユーザはRubiniusを稼動するサービスで利用できますか?

これは、ユーザはAppCloudの中でRubiniusを自由に利用することができるがシステムへのフィードバックとバグレポートを求めている、ということを意味しています。十分なフィードバックを得て、ユーザがシステムが問題なく動いているという報告があれば、一般的に利用可能にすると思います。
そういうことなので、確かにユーザは稼動サービスに利用することはできますが、バグに遭遇するかもしれません。 :)

InfoQ: AppCloudは利用可能なCPUあるいはコアをどのように有効に利用するのでしょうか? 複数のRubiniusインスタンスを走らせる必要がありますか? (REE風の)Rubiniusインスタンスをまたぐ何らかの共有が可能なのでしょうか?

RubiniusはREEと同じ方法、つまりpassengerとunicornでシステムに統合されています。これはいくつかのプロセスを立ち上げ、複数コアを利用することが可能ですが、REEとは異なりプロセス間のメモリ共有のようなものに最適化されてはいません。これはGCで利用されている技術、とくにオブジェクトを移動することができる機能が、共有と親和性がないことによるものです。しかし、このGC技術の改善によって、プロセスはOSに要求するメモリ総量をずっと厳しく管理することができます。その結果、RubiniusプロセスはMRIやREEがもっているような無制限なメモリ利用の問題にあうことはないはずです。

InfoQ: Hydraブランチで行われている1.9サポートとGIL(Global Interpreter Lock)撲滅の作業の状況はどうでしょうか?

どちらの作業もHydraブランチで進行中です。私たちは最近、Hydraブランチのバージョン番号を2.0に変えました。これは、真にRubiniusの未来であるということを反映したものです。私たちはまた、2.0を今夏に出すことを目標にしています。この楽天的な時間枠の設定はこれらの機能の状態を反映しています。GIL削除は驚くほど順調に進んでおり、Hydraブランチはかなり安定しています。Brian [Ford]氏は1.9パーサが稼動するように活発に作業を行っていて、いったん動くようになってしまえば1.9の変更は流れるように早く進み始めるでしょう。

InfoQ: あなたはどうやってRubiniusがAppCloudに利用するのに十分なほど成熟/完成していると知ったのでしょうか? プロファイラやヒープ解析ツール以外に言及すべきパフォーマンスツールがありますか?

私たちがRubiniusが十分に成熟していると知ったのは、ユーザが私にそう言い始めたからです。私たちはそうだと思っていませんでしたが、少し前に世の中にあるコードの大多数が動く互換性の閾値のようなものに到達しています。まだあちこちに互換性に関するバグはありますが、全体的に見ればその数は頭打ちだと言えます。同様にシステムにはまだパフォーマンスに関するバグがあり、必死に作業中ですが、こちらも同じように多くの人が動かしたいもののたいていが十分にうまく動くというところまではきています。

ツールに関しては、多くの人は私たちがRubiniusに組み込んだ優れたものも即座に発見し続けています。プロファイラは、私たちが改善しユーザが私たちにどのくらいそれがコードを最適化するのに役立つかについてのフィードバックを返してくれる要素であり続けています。

私たちはヒープ解析ツールで何ができるかについてはほんの少しかじり始めた程度ですが、ユーザはすでにそれがアプリケーションの問題の理解にどれほど役に立つかを報告し続けています。フィードバックは、よいものでも悪いものでも、ユーザが楽になるツールの改善へのエネルギーを与えてくれるものです。


GemがRubinius互換かどうかのチェックのためには、isitrubinius.comが情報やユーザの体験を探すべき場所である。

Rubiniusはrvmを使って、またはRubiniusウェブサイトから利用可能である。

この記事に星をつける

おすすめ度
スタイル

BT