JMH を見てみたいのですが、何らかの理由でベンチマークを実行できません。私が試したことを説明しましょう:
- Eclipse で Maven プロジェクトをセットアップする
次のように pom.xml を定義します。
公式の JMH の例をいくつかダウンロードしました。例として、非常にシンプルで開始するのに適した場所を選択しました 。 /jmh/samples/JMHSample_01_HelloWorld.java
- マウスの右クリック > Run As > Java アプリケーション
ただし、これにより出力が生成されます。
Exception in thread "main" No benchmarks to run; check the include/exclude regexps.
at org.openjdk.jmh.runner.Runner.run(Runner.java:155)
at org.openjdk.jmh.samples.JMHSample_01_HelloWorld.main(JMHSample_01_HelloWorld.java:90)
私はグーグルで検索しましたが、上記の例は機能するはずですが、私には当てはまりません。私も読んで問題を解決しようとしましたが、これはうまくいかないようです:
- Eclipse でメインから JMH を実行すると「一致するベンチマークがありません」
生成されたクラスを手動で /META-INF/MicroBenchmarks に移動しようとしましたが、次のエラーが発生します。
Exception in thread "main" java.lang.IllegalStateException: Mismatched format for the line: JMHSample_01_HelloWorld.class at org.openjdk.jmh.runner.BenchmarkRecord.<init>(BenchmarkRecord.java:92) at org.openjdk.jmh.runner.MicroBenchmarkList.find(MicroBenchmarkList.java:133) at org.openjdk.jmh.runner.Runner.run(Runner.java:150) at JMHSample_01_HelloWorld.main(JMHSample_01_HelloWorld.java:80)
JMH は /META-INF/MicroBenchmarks にいくつかの有効な行を生成する必要があるようです。つまり、このフォルダーには生成された Java クラス ファイルが存在しないはずですよね?
誰でも間違いを見つけるのを手伝ってもらえますか? ありがとうございました。