我正在使用 HDR 直方图的 Java 实现:
<dependency>
<groupId>org.hdrhistogram</groupId>
<version>2.1.4</version>
<artifactId>HdrHistogram</artifactId>
</dependency>
我注意到即使样本数为 1,最小值和最大值也会有所不同:
@Test
public void testHistogram() throws Exception {
Histogram stats = new Histogram(2);
stats.recordValue(35071);
assertEquals(1, stats.getTotalCount());
assertEquals(35071, stats.getMaxValue());
assertEquals(35071, stats.getMinNonZeroValue()); // Fails:
// java.lang.AssertionError:
// Expected :35071
// Actual :34816
}
我在直方图代码中看到以下片段:
public long getMinNonZeroValue() {
return (minNonZeroValue == Long.MAX_VALUE) ?
Long.MAX_VALUE : lowestEquivalentValue(minNonZeroValue);
}
(那是在GitHub中)
我的问题是:为什么我们不能简单地返回记录minNonZeroValue
?