当前位置: 首页 > 知识库问答 >
问题:

使用JMH的Java最大和最小时间基准

端木宏盛
2023-03-14

我想写一个基准来跟踪执行一些Java代码所需的最大、最小和平均时间。

我读了关于JMH(JavaMicro基准线束),它似乎符合我的需求,但我不太确定我应该使用哪种模式:

>

  • 模式。吞吐量通过在有时限的迭代中连续调用基准方法并计算我们执行该方法的次数来测量原始吞吐量。

    这似乎不是我想要的。

    模式。AverageTime测量执行基准测试方法所需的平均时间。

    这应该是我需求的三分之一。

    模式。SingleShotTime衡量单个基准方法执行运行所需的时间。

    这似乎不是我想要的。

    模式。SampleTime对我来说是最模糊的。

    关于示例的文档表明,它通过在有时间限制的迭代中运行方法来“采样”执行时间,但它不是测量总时间,而是测量“某些”基准方法调用所花费的时间。这是什么意思?

    什么模式可以为我提供最小和最大时间?还有其他模式吗,或者有其他框架来完成这项工作吗?

  • 共有1个答案

    柴良哲
    2023-03-14

    如果您使用@Benchmark(Mode. AverageTime)运行您的@Benchmark,作为奖励,您将获得如下输出:

    Result "StopAllBenchmarks.measureRight":
     2.387 ±(99.9%) 0.307 ns/op [Average]
     (min, avg, max) = (2.339, 2.387, 2.526), stdev = 0.080
     CI (99.9%): [2.079, 2.694] (assumes normal distribution)
    

    注意min,avg,max

     类似资料:
    • 我正在使用Java测量线束(JMH)对一些例程进行基准测试。我对获取每次运行的最大堆大小感兴趣。JMH的GC Profiler为我提供了诸如分配率和流失率之类的信息,但我正在寻找在测试运行期间堆获得的最大值。这能做到吗?

    • 问题内容: 我想返回该数字,只要它在限制范围内,否则返回限制的最大值或最小值。我可以结合使用和和。 我想知道,如果有一个现有的或我俯瞰功能。 如果第三方库很常见(例如Commons或Guava),则欢迎它们 问题答案: 从版本21开始,Guava包括(以及其他原语的等效方法)。从发行说明中: 添加了将给定值限制在和值定义的封闭范围内的方法。如果值在范围内,则返回值本身,如果值在范围内,则返回值,如

    • 我刚刚开始在HackerRank上练习,以提高我的编码技巧。我主要使用Java作为我的首选语言。我已经得到了这个问题,我已经尽力给出了解决方案,但没有清除所有的测试用例。我已经清除了15个测试用例中的5个,但仍有10个需要完成。那些在hackerrank上的人可以通过以下链接看到这个问题:最小-最大和 无论如何,我给出了这个问题的简要描述: 问题陈述 给定五个正整数,通过将五个整数中的恰好四个求和

    • 问题内容: 我在搜索时遇到问题,只是不知道该怎么做。我的文档具有以下形式: 假设会话ID的第一个时间戳是“登录”,最后一个时间戳是“注销”。我希望所有会话都具有所有“登录”和“注销”文档(如果可能,请按排序)。我设法通过聚合获得正确的时间戳: 但是我如何获得相应的文档?我也不介意我是否必须进行2次搜索(一次用于登录,一次用于注销)。我尝试了热门热门文章的汇总和排序工作,但是我总是会遇到解析错误:/

    • 作为这个问题的一部分,我需要找到: 数字的数量(计数) 数字之和(sum) 数字的平均值(平均值) 哪些数字是偶数(偶数) 哪些数字是奇数(赔率) 我尝试在while循环中执行此操作: 其思想是,当while循环迭代时,它会将它通过的数字与最大值进行比较,并将它在计数中找到的最大值与最大值进行匹配,如果它找到的数字大于最大值,则成为新的最大值。对最小的也是同样的想法。 但它并不起作用。我该怎么办?

    • 问题内容: 我被分配编写一个程序,该程序读取一系列整数输入并打印-输入的最小和最大-以及偶数和奇数输入的数量 我想出了第一部分,但对如何使程序显示最大和最小感到困惑。到目前为止,这是我的代码。我怎样才能显示最小的输入呢? 问题答案: 最简单的解决方案是使用诸如和