2014-04-05 120 views
0

我在使用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文件的測試信息,並且運行良好。

所以,問題是我做錯了什麼? 我是否必須手動編寫有關測試的信息?

回答

3

請按照江鈴控股有限公司網頁上的說明來設置基準項目,即:

「確保你得到支持之前嘗試過這些事情: - 原型提供金色構建配置嘗試生成乾淨的JMH基準測試項目並在那裏移植基準測試 這對於升級到較新的JMH 版本時嘗試很重要,因爲構建配置中的微小差異可能是因爲您看到的失敗而導致的 屬性。

如果你遵循,你會發現,你還需要添加江鈴控股有限公司 - 發電機 - annprocess的依賴,並確保你運行任何測試之前運行。

相關問題