1

アプリのプロファイルを作成して、メモリ管理と速度を調整できる場所を確認しようとしています。ガベージコレクションを読み込んで、使用しようとしています

GC::Profiler.enable

私のアプリで。ただし、これをJrubyで呼び出すと、

org.jruby.exceptions.RaiseException: (NameError) uninitialized

ガベージ コレクションは Jruby の JVM で行われることを知っています。これが初期化されていない理由かもしれません。Jruby で使用する代替手段は何ですか?

4

1 に答える 1

3

これは MRI 固有の API です。JRuby に相当する API はおそらくありません。これはおそらく JVM の動作方法によるものです (ほとんどの VM には複数の GC 戦略があり、GC で動作する一貫した APISystem.gc()はありません。呼び出しがガベージ コレクションをトリガーする必要がない場合でも)すぐに)。

ただし、Java アプリケーションで使用できる標準の監視 API ( MXと呼ばれる) があり、JRuby アプリは Java アプリであるため、それらを使用できます。しかし、それほど難しいことではありません。

ここから始めてみてください: http://www.engineyard.com/blog/2010/monitoring-the-jvm-heap-with-jruby/

JRubyでも使用できる Java ツールの概要を次に示します。

wiki も忘れずにチェックしてください。たとえば、オブジェクト割り当てのプロファイリングに関するページがあります: https://github.com/jruby/jruby/wiki/Profiling-Object-Allocations

于 2012-04-21T12:04:30.053 に答える