我想用JMH来衡量Fibonacci功能的性能。但是,在编译时,我会得到以下错误:
Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find the resource: /META-INF/BenchmarkList
at jmh.core@1.34/org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
at jmh.core@1.34/org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:124)
at jmh.core@1.34/org.openjdk.jmh.runner.Runner.internalRun(Runner.java:253)
at jmh.core@1.34/org.openjdk.jmh.runner.Runner.run(Runner.java:209)
at jmh.core@1.34/org.openjdk.jmh.Main.main(Main.java:71)
at project/Mypackage.BenchmarkRunner.main(BenchmarkRunner.java:6)
我用IntelliJ主意我用openJDK 16
我试图在参考资料目录中添加文件夹和文件/META-INF/BenchmarkList,我有以下错误:
No matching benchmarks. Miss-spelled regexp?
Use EXTRA verbose mode to debug the pattern matching.
我的主修课谁开始了基准:
public class BenchmarkRunner {
public static void main(String[] args) throws Exception {
org.openjdk.jmh.Main.main(args);
}
}
和使用Fibonnaci方法的类,我想要度量它的性能。
public class TestClassMesurment {
@Benchmark
@BenchmarkMode(Mode.AverageTime)
@Fork(value = 1)
@Warmup(iterations = 2)
@Measurement(iterations = 1)
public void init() {
fib(52);
//fibbonaci(300);
}
static int fib(int n) {
if (n<2) return 1;
else return fib(n-1) + fib(n-2);
}
double fibbonaci(int n){
double prev=0d, next=1d, result=0d;
for (int i = 0; i < n; i++) {
result=prev+next;
prev=next;
next=result;
}
return result;
}
}
发布于 2022-02-14 18:59:14
/META-INF/BenchmarkList
是在编译时自动生成的,不需要手动创建。如果没有创建这个文件,这通常意味着注释处理已经关闭。请把它打开。
此外,运行基准测试的方式也不同于样本中指定的基准测试。也试着使用这种方法。
https://stackoverflow.com/questions/71109939
复制相似问题