我在使用JMH時遇到了一些問題。在Intellij IDEA中運行JMH示例時的空基準測試
因此,我在Intellij Idea中創建一個空項目,然後在項目結構中添加jmh-core jar文件。最後,嘗試運行樣本,例如
import org.openjdk.jmh.annotations.GenerateMicroBenchmark;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
public class JMHSample_01_HelloWorld {
@GenerateMicroBenchmark
public void wellHelloThere() {
// this method was intentionally left blank.
}
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(".*" + JMHSample_01_HelloWorld.class.getSimpleName() + ".*")
.forks(1)
.build();
new Runner(opt).run();
}
}
,但結果是
使用verbosity(VerboseMode.EXTRA)
No matching benchmarks. Miss-spelled regexp?
Benchmarks:
Process finished with exit code 0
我試圖輸出路徑更改爲projectFolder\target\classes
,但什麼也沒有改變。 然後我看着調試模式下的源代碼,看到resource = "/META-INF/MicroBenchmarks"
,urls.hasMoreElements()
是錯誤的,因此benchmarks
是空的。然後我在示例jar文件中看到有關MicroBenchmarks文件的測試信息,並且運行良好。
所以,問題是我做錯了什麼? 我是否必須手動編寫有關測試的信息?