我想知道在哪种情况下使用Statistics比较confidence是很有趣的,这要归功于Statistics#compareTo(统计,双倍)方法。用这种方法比较两种方法的性能是否有意义?在这种方法中,confidence的确切目的/含义是什么?
发布于 2016-05-05 14:26:36
正如javadoc所述,它的值为置信区间。
粗略地说,假设您有两个方法运行时的两个发行版(也称为基准运行)。默认情况下,JMH假设它有一些参数(均值和方差)的正态分布。但是分布并不是数字:你不能把一个平均值和另一个平均值进行比较,然后说“嗨,第一次平均数比第二次平均数小,所以第一种方法平均来说更好!”首先,您应该证明它们不属于相同的分布(即使它们(样本,而不是分布)有稍微不同的方法也是可能的),否则这种比较是没有意义的。对于这样的证明,使用了特殊的统计检验。但是,只要测试是处理样本,而不是实际分布,测试就不能说“两个数据集不属于同一分布”,测试只能说“两个数据集不属于99%的概率分布”。这99% (或任何其他)实际上是你所要求的信心。
因此,基本上,s1.compareTo(s2, 0.9) == 1意味着s1 (第一个基准运行时间)的平均运行时间比第二个的平均运行时间小,其概率为90%的( 10%可能有任何其他结果,而不仅仅是相反的结果)。
https://stackoverflow.com/questions/36982538
复制相似问题