私はjmhが新しく、スレッドの背後で何が起こるかを理解することができます。JMH状態クラスと共有対非共有状態
だから、私は@Stateアノテーションを読んで立ち往生し、共有されていない状態を共有していました。
私はこの例を読んでいます:http://hg.openjdk.java.net/code-tools/jmh/file/ecd9e76155fe/jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_03_States.java とそれに関する質問はありません。
最初の質問は、どのような状態クラスの正確な役割ですか?パラメータを保持するには? 2つの異なる方法で鍵を暗号化するプログラムをベンチマークしたいとしましょう。 特定の状態で注釈を付けた状態クラスにキー(Stringオブジェクト)を保持する必要がありますか? Stringオブジェクトをベンチマーククラスに保つだけですか? これについての説明は素晴らしいでしょう。
上記の例では、共有されていない状態クラスのパフォーマンスが共有されたものよりも優れていたのはなぜですか? マルチスレッド状態はどのように変更されますか?
私はこのことを初めて知っていて、jmhのための「私は5歳のように説明してください」とそのオプションを見つけることができなかったので、私は本当にあいまいでした。
ベンチマーククラスで変数を保持し、それらを@Setupで初期化するか、変数を保持して初期化する内部クラスを作成するかどうかは本当に重要です。それを行う方法は2通りあります。 – TalOhana
これは簡単ですが、最初は後者の便宜です。 –