gpt4 book ai didi

jmh - Fork中的warmup属性和jmh中的Warmup注释之间有什么区别?

转载 作者:行者123 更新时间:2023-12-04 20:39:51 24 4
gpt4 key购买 nike

我正在使用tutorial学习JMH基准测试。

我注意到here中的功能benchMurmur3_128有2个与预热相关的东西。

因此,我对Fork注释中的热身属性和带有迭代属性的Warmup注释之间的区别有疑问吗?

最佳答案

使用JMH基准测试,您可以依次运行一个或多个 fork ,并在每个 fork 中运行基准代码的一个或多个迭代。有两种与之相关的热身形式:

  • 在fork级别, @Fork的 warmups 参数指定在运行基准fork之前要运行多少个warning fork。创建基准测试结果时,将忽略热身 fork 。
  • @Warmup 批注可让您指定派生中的预热特征,包括要运行的预热迭代次数。创建基准测试结果时,将忽略预热迭代。

  • 例如:
  • @Fork(值= 3,预热= 2)表示将依次运行5个fork。前两个将是预热运行,将被忽略,最后三个将用于基准测试。
  • @Warmup(迭代次数= 5,时间= 55,timeUnit = TimeUnit.MILLISECONDS)表示每个fork内将进行5次热身迭代。产生基准结果时,将忽略这些运行的时间。
  • @Measurement(迭代次数= 4,时间= 44,timeUnit = TimeUnit.MILLISECONDS)表示您的基准测试迭代将运行4次(在5个预热迭代之后)。

  • 因此,上面显示的预热设置的总体影响是:
  • 五个分支中只有最后三个将用于基准测试结果。
  • 每个非预热分支中的最后四个迭代将仅用于基准测试结果。

  • 这就是为什么下面的JMH输出(使用基准测试方法的那些批注运行)在运行结束时显示 Cnt 12 的原因:3个fork x 4次迭代= 12。

    jmharmup

    关于jmh - Fork中的warmup属性和jmh中的Warmup注释之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47776345/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com