2016-03-29 8 views
5

私は分析しようとしているJMHベンチマークをいくつか持っています。 GCのログを有効にして、どのくらいのガベージが生成されているかを確認したいのですが、JVM引数を渡す方法を理解できません。私はJMHが分岐したJVMでベンチマークを実行することを知っているので、これをどうやって行うのかはすぐわかりません。私はSBTを使用しています。JMHへのJVM引数の受け渡し

+0

JMHは、渡された引数を渡します。コマンドラインに追加するだけで、 –

答えて

7

sbt-jmh docsの権利を読んだ場合、アプリケーションオプションはjmh:run ...のJMHランナーに渡されます。だから、そのJMHコマンドラインで--jvmArgs "..."を受け入れると、私はjmh:run --jvmArgs "-XX:+PrintGCDetails"を実行しようとします。または、@ apanginに言及すると、@Fork(jvmArgsAppend = "-XX:+PrintGCDetails")を追加します。

しかし、あなたの特定のユースケース - 「ガベージの量を確認してください」 - -prof gcでアクティブ化されたバンドルGCプロファイラを使用する方が良いかもしれません。 JMHSample_35_Profilers.java#l71の例を参照してください。

5

使用@Fork注釈:JMHに渡されたJVM引数もフォークベンチマークに伝播していることを

@Benchmark 
@Fork(jvmArgsAppend = "-XX:+PrintGCDetails") 
public void someBenchmark() { 
    ... 
} 

注意。

関連する問題