我的第一个JMH基准代码:
package org.sample;
import org.openjdk.jmh.annotations.Benchmark;
public class MyBenchmark {
@Benchmark
public void testMethod() {
// This is a demo/sample template for building your JMH benchmarks. Edit as needed.
// Put your benchmark code here.
int i = 100;
while (i > 0) {
i--;
}
}
}
使用以下命令的任何运行
java.lang.OutOfMemoryError: Java heap space
在第一次热身迭代。
java -jar target/benchmarks.jar
java -Xmx256m -jar target/benchmarks.jar
java -Xmx500m -jar target/benchmarks.jar
java -Xmx700m -jar target/benchmarks.jar
java -Xms512m -Xmx1152m -XX:MaxNewSize=256m -jar target/benchmarks.jar
我错过了什么?
答案 0 :(得分:0)
因为我所做的代码具有内存密集型(向自身添加一百个字符串),并且在重新运行之前我没有重建项目。
用
重建mvn clean install
它可以正常使用默认命令/堆大小:
java -jar target/benchmarks.jar