BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース CrossTwine LinkerがMRIおよび1.9.1パフォーマンスの向上を目指す

CrossTwine LinkerがMRIおよび1.9.1パフォーマンスの向上を目指す

原文(投稿日:2009/5/3)へのリンク

CrossTwine(リンク)は、既存のRubyおよびPythonランタイムのパフォーマンスの改善を目指している。CrossTwine Linkerの概要(リンク)は、以下のとおりである。

一言で言えば、オブジェクトや機能のランタイムの振る舞いを監視し、完全な安全性を提供しつつも、不必要なダイナミズムを除去することでよくある例を最適 化する。 Technical White Paperで具体的に説明している。

CrossTwineパッチを装備したRuby 1.8およびRuby 1.9.1バージョンは、Linux向けのバイナリとして利用可能(リンク)である。

CrossTwineテクノロジのソースやVMへの統合を求めても、何の成果もない。テクノロジは解決済みのソース(リンク)である。その代わりに、企業はサービスの提供に重点的に取り組みたくなり、CrossTwineテクノロジでRubyまたはPythonアプリケーションの改善に一役買う。

サービスビジネスとして、CrossTwine Linkerカーネルは、迅速に特定の二ーズに設えられた言語、ドメイン、さらには問題に固有のインタープリターの開発を可能にする。その結果、対象とな る問題について知っていれば、専門性のレベルを選択(および拡張)することができる。しかしながら、安全に「うまく逃れる」ことができる。問題に特定のカ スタマイズは言語と100%の互換性があるが、ある種のワークロードではずっと高速になりえる。

それにもかかわらず、単純なベンチマークによっては、利用可能なバイナリはプレーンランタイムより高速にコードを実行するものもある。しかし、現在の最初のアルファバージョンは特定のコードしか最適化しないことを、CrossTwineのデベロッパの1人が述べている(リンク)

現実世界のアプリケーションの高速化は、それらが依存している設備により、実際非常に簡単からとてつもなく難しいものまで多岐に及ぶ。また、とても完了し ているとは言いがたい。大量の演算をおこなうアプリケーションが、大幅なスピードアップが実現できた一方で、変更されたインタープリターではRailsは 高速化されていない現状である。


技術的な情報はWhitepaper (PDF)で提供されている。最適化により、インラインキャッシングおよびメッセージ送信を改善する。また、別の最適化は、変数の繰り返される検索を改善 することで、インスタンス変数の検索に取り組む。Javascriptオブジェクト向けのGoogle ChromeのV8と類似した、他の検索の最適化は計画されているが、現在は活発とは言いがたい。

Twitterがhttp://twitter.com/crosstwineにある。

Python空間において、Unladen Swallowプロジェクト(リンク)の発表後まもなく、CrossTwineが 誕生する。そのWebサイトによると、Unladen Swallowを支えているチームは、数名のGoogleの従業員で構成される。 パフォーマンスの追加のため、現在のVMおよび計画にかかわっている。計画された最適化の1つは、遅いバイトコードのディスパッチを高速なメソッド(直接 的なスレッドなど)に代えることで、バイトコードインタープリターの効率性ループを改善することである。他に計画されていることは、Ruby 1.9.xにも存在しているGIL (Global Interpreter Lock)を除去し、ひとつのスレッドが同時にPythonコードを実行できるようにすることである。今後の計画には、世代のGCや最終的にはLLVMを 使用することで実装されるJITが含まれる。CrossTwineとは異なり、 Unladen Swallowはオープンソースである。

最後に、古いVMの効率性を改善するということになると、Cog VMのプロジェクトから目が離せない。それは、Eliott Miranda氏(リンク)によるSqueak VMの整備されたバージョンである。

この記事に星をつける

おすすめ度
スタイル

BT