Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从性能度量中排除方法调用_Java_Performance_Jmh - Fatal编程技术网

Java 从性能度量中排除方法调用

Java 从性能度量中排除方法调用,java,performance,jmh,Java,Performance,Jmh,我正试图在JMH中编写一个基准测试来衡量我们定制产品的性能 我指的是把一个物体放进去的表现。在每次迭代中,我想生成一个要放置的对象,但我想从基准测试结果本身中排除生成 下面是它的样子: @Benchmark public void m(){ Collection<Object> c = create(); Object o = createObject(); // I want to measure performance of the following l

我正试图在
JMH
中编写一个基准测试来衡量我们定制产品的性能

我指的是把一个物体放进去的表现。在每次迭代中,我想生成一个要放置的对象,但我想从基准测试结果本身中排除生成

下面是它的样子:

@Benchmark
public void m(){
    Collection<Object> c = create();
    Object o = createObject();
    // I want to measure performance of the following line only
    c.add(o);
}

public Collection<Object> create(){
    //return the instance of the collection
}

public Object createObject(){
    //return some object
}
@基准测试
公屋{
集合c=create();
对象o=createObject();
//我只想测量以下行的性能
c、 添加(o);
}
公共集合创建(){
//返回集合的实例
}
公共对象createObject(){
//返回一些对象
}

我知道
@Setup
注释,但它仅在基准测试启动时调用。所以这并不完全是我想要的。

您可以在设置方法中创建这些对象,例如,将它们存储在预构建的数组中

然后,提供新对象归结为一个数组访问和索引增加操作。我很肯定,你不会找到一种不费吹灰之力就能做到这一点的方法


换句话说:如果您不想对对象创建进行基准测试,那么唯一的替代方法是预先创建它们,并以某种方式记住它们以备将来使用。如果@Setup不是你想要的;只需使用一些静态数组,在类加载时填充即可。

我认为
@Setup
在这里不起作用。因为我需要在每次方法调用时创建新对象。使用秒表怎么样?@Perimosh怎么样?