我正在使用HdrHistogram java库,但是我没有得到想要的输出。你能帮助我理解库中的错误或期望值吗?
在本例中,我期望输出为1000000,但实际输出为1000003
import org.HdrHistogram.*;
public class Main {
public static void main(String[] args) throws InterruptedException {
Histogram histogram = new Histogram(5);
histogram.recordValue(1000000);
histogram.recordValue(1000001);
histogram.recordValue(1000002);
histogram.recordValue(90);
histogram.recordValue(10);
System.err.println(histogram.getValueAtPercentile(50.0));
}
}为什么会发生这种情况。我的maven设置是:
<dependency>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
<version>2.1.8</version>
</dependency>发布于 2016-04-19 06:30:09
这是正确的行为。使用指定分辨率/间隔的5个小数点(在您的示例中),任何1000000 +/- 100的结果都是正确的。1000003正好在这个范围内,histogram.valuesAreEquivalent(1000000,1000003)将/应该返回true。请注意,您可以使用histogram.lowestEquivalentValue(1000000)和直方图。highestEquivalentValue(1000000)建立了等效值的范围。
https://stackoverflow.com/questions/36661558
复制相似问题