如何在JMH中初始化每次调用的数据?

时间:2015-11-20 08:48:45

标签: java jmh

我正在尝试创建修改集合的基准。 问题是我不知道如何为每次调用初始化数据。

假设Test.DATA是一个包含200个元素的集合 test方法会根据a.isTrue()的值删除数据 我知道@Setup类似于JUnit的@Setup。我想使用@Before 但我在JMH找不到一个。 如何在每次调用test方法之前初始化数据? 非常感谢你提前。

@State(Scope.Thread)
public class JavaCollectionBenchmark {

    List<Foo> cols;

    @Setup
    public void prepare(){
        cols= new ArrayList<>(Test.DATA);
    }

    @Benchmark
    public long test(){
        if(cols.size() != 200) {
            System.out.println("SECOND TIME DOESN'T WORK!");
            System.exit(0);
        }else{
            System.out.println("FIRST TIME");
        }
        cols.removeIf(a-> a.isTrue());
        return cols.size();
    }
}

0 个答案:

没有答案