BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JRuby Roundup:JRuby-Profで高速プロファイリングが可能に、JRuby::Synchronizedで同期の自動化

JRuby Roundup:JRuby-Profで高速プロファイリングが可能に、JRuby::Synchronizedで同期の自動化

原文(投稿日:2010/03/24)へのリンク

JRuby-Prof は、 Daniel Lucraft氏による新しい JRuby専用のプロファイラである。Java用の成熟したプロファイラがたくさんあるが、JRubyの混合実行モードの出力は、読みづらい;あるJRubyコードは、インタープリテーションされ、あるJRubyのホットスポットは、バイトコードにJITコンパイルされる。ユーザが本当には、どの Ruby メソッドがどのくらい呼び出されているかだけを知りたいのなら 、Javaプロファイラを使うと、プロファイルに JRubyの内部メソッドが現れるので、プロファイル出力に、すべての上位メソッドが見れる。

JRuby-profは、 JRubyのフックを使って、メソッドの呼び出しのようなイベントに関する情報を集める。フックは、プロファイラを実装するより効率的な方法である、少なくとも、1行実行される前に、コールバック関数が呼ばれる、set_trace_funcを使う単純な方法に比べたら、より効率的である。

JRuby-prof は、Gemとして入手できる:

jruby -S gem install jruby-prof 

JRuby-prof のソースコードは、GitHubにある.

JRuby::Synchronized module がJRubyに新しく加わった。 Charles Nutter氏が、jruby-user listにJRuby::Synchronized の背後にある考えを説明している:

IRCで、 MenTaLguY氏とJRubyにコンカレントなコレクションを加えることを話した後に、試してみたい人たちに新しいフィーチャを思いついたんです:
require 'jruby/synchronized'
class MyClass include JRuby::Synchronized ...

or
obj.extend JRuby::Synchronized

この新しいモジュールを含んだり、拡張したりする効果は、そのクラスのオブジェクト(あるいは、そのクラスの「今シングルトンである」オブジェクト)に対する全てのメソッド呼び出しが、 Java synchronizedブロックの中にラップされたかのように振舞うことである。2つのスレッドが同時に、これらのオブジェクトにメソッドを実行することはできない(明らかに、1オブジェクトについてのこと)。

これは、 JRubyに並列化ツールを提供する実験である - あなたは、他に何が見たいですか?

この記事に星をつける

おすすめ度
スタイル

BT