我想知道在哪种情况下,使用Statistics
比较confidence
感谢方法Statistics#compareTo(Statistics, double)。使用这种方法来比较两种方法的表现是否有意义?这种方法中confidence
的确切目的/含义是什么?
答案 0 :(得分:1)
正如javadoc所述,它的值为confidence interval。
粗略地说,假设您有两个方法运行时间的两个分布(也就是基准运行)。默认情况下,JMH假定它具有一些参数(均值和方差)的正态分布。但是分布不是数字:你不能将一个平均值与另一个平均值进行比较并说“嘿,第一个意思是小于第二个,因此第一个方法平均更好!”。首先,你应该证明它们不属于同一个分布(即使它们(样本,而不是分布)的方法略有不同,它仍然是可能的),否则这种比较是没有意义的。对于这样的证明,使用了特殊statistical test。但只要测试处理样本而不是实际分布,测试就不能说“两个数据集不属于同一个分布”,测试只能说“两个数据集不属于同一个分布” 99%概率“。这99%(或任何其他)实际上是你所要求的信心。
所以,基本上,s1.compareTo(s2, 0.9) == 1
意味着s1(第一基准运行时间)的平均运行时间小于第二个,概率为90%(10%可能还有其他运行时间)结果,不仅相反)。