我的第一个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我遗漏了什么?
发布于 2015-11-09 20:37:33
因为我所拥有的代码是内存密集型的(向自己添加了一个字符串100次),并且在再次运行它之前我没有重新构建这个项目。
曾经重建过
mvn clean install对于默认的命令/堆大小,它可以正常工作:
java -jar target/benchmarks.jarhttps://stackoverflow.com/questions/33617788
复制相似问题