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