JMH入门:java.lang.OutOfMemoryError:Java堆空间

时间:2015-11-09 20:36:16

标签: java benchmarking

我的第一个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

我错过了什么?

1 个答案:

答案 0 :(得分:0)

因为我所做的代码具有内存密集型(向自身添加一百个字符串),并且在重新运行之前我没有重建项目。

重建
mvn clean install

它可以正常使用默认命令/堆大小:

java -jar target/benchmarks.jar