Java JMH:don';不考虑内部方法时间

Java JMH:don';不考虑内部方法时间,java,benchmarking,microbenchmark,jmh,Java,Benchmarking,Microbenchmark,Jmh,我有:这样的方法: @GenerateMicroBenchmark public static void calculateArraySummary(String[] args) { // create a random data set /* PROBLEM HERE: * now I measure not only pool.invoke(finder) time, * but also generateRandomArray method time

我有:这样的方法:

@GenerateMicroBenchmark
public static void calculateArraySummary(String[] args) {
    // create a random data set
    /* PROBLEM HERE: 
     * now I measure not only pool.invoke(finder) time,
     * but also generateRandomArray method time
     */
    final int[] array = generateRandomArray(1000000); 

    // submit the task to the pool
    final ForkJoinPool pool = new ForkJoinPool(4);
    final ArraySummator finder = new ArraySummator(array);
    System.out.println(pool.invoke(finder));
}

private static int[] generateRandomArray(int length) {
    final int[] array = new int[1000000];
    final Random random = new Random();
    for (int i = 0; i < array.length; i++) {
        array[i] = random.nextInt(100);
    }
    return array;
}
@GenerateMicroBenchmark
公共静态无效计算器摘要(字符串[]args){
//创建一个随机数据集
/*这里的问题是:
*现在我不仅测量pool.invoke(finder)时间,
*但也有GeneratorDomainArray方法的时间
*/
final int[]数组=generateRandomArray(1000000);
//将任务提交到池中
最终ForkJoinPool池=新的ForkJoinPool池(4);
最终ArraySummator finder=新ArraySummator(数组);
System.out.println(pool.invoke(finder));
}
私有静态int[]GeneratorDomainArray(int长度){
最终整数[]数组=新整数[1000000];
最终随机数=新随机数();
for(int i=0;i
问题:我不希望我的程序考虑到
generateRandomArray
方法花费的时间


问题:如何从jmh测量中排除
generateRandomArray

如果有疑问,请查看jmh样本。您想要的效果是通过在某些fixture方法上的
@Setup
注释实现的,该方法将在基准测试之前运行。JMH示例中的确切答案是。

简单的答案是:通过设计方法,使基准适用于整个方法。如果可以,请将随机数组作为
@Measurement
提供,如果不能,请在设置方法或静态块中生成。请将链接资源的最相关部分添加到您的答案中,截至目前,这是一个仅链接的答案,所以我会很失望。@jb我认为如果答案完全由文档描述,那么我不应该从文档中推广复制粘贴。如果你想否决某些东西,那么就在原来的问题上这样做,就好像OP没有完成他/她的家庭作业一样。在使用这些东西之前,默默地将人们指向他们必须阅读的文档,这是一种教育价值。所讨论的案例很琐碎,文档对其进行了准确描述。这里没有争议,没有误解,只有懒惰。在我看来,没有任何借口通过接受这些问题并给出彻底的答案来强化懒惰。尽管我不能不私下同意关于教学价值的说明,Stack Overflow是一个满足教育学之外更多关注的网站。与此特别相关的是答案对公众的价值。如果教学效果,直接针对OP,是所有想要的,途径是1。评论与链接,2。投票结束。