Getting started with JMH: java.lang.OutOfMemoryError: Java heap space
Getting started with JMH: java.lang.OutOfMemoryError: Java heap space
我的第一个 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
我错过了什么?
因为我做的代码是内存密集型的(给自己添加一个字符串一百次),而且我在运行之前没有重新构建项目.
用
重建后
mvn clean install
它在默认 command/heap 尺寸下工作正常:
java -jar target/benchmarks.jar
我的第一个 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
我错过了什么?
因为我做的代码是内存密集型的(给自己添加一个字符串一百次),而且我在运行之前没有重新构建项目.
用
重建后mvn clean install
它在默认 command/heap 尺寸下工作正常:
java -jar target/benchmarks.jar