gpt4 book ai didi

java - HDR直方图: Min not same as Max on 1 sample count

转载 作者:行者123 更新时间:2023-12-02 03:32:12 25 4
gpt4 key购买 nike

我正在使用 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

最佳答案

HdrHistograms 设置为最小可配置精度(例如 2 位小数,或 3 位,或...)。作为一种数据结构,它使用逻辑指数桶,每个桶中都有线性子桶,以在整个动态范围内保持所需的精度,所有这些都在固定大小(对于给定的动态范围和精度级别)数据结构内。因此,直方图中记录的任何整数值与最低等效值(值)..最高等效值(值)范围内的任何其他值都无法区分。

HdrHistogram 小心地避免提供“范围内”的任何结果。当询问最小值时,它总是会响应一个等于最低记录值的值。当询问最大值时,它总是会响应一个等于最高记录值的值。这些答案显然在精度契约内,否则会导致“令人惊讶”的行为,例如迭代超过最小值或最大值,或者获取超出报告范围的查询答案(平均值、百分位数等)最小..最大范围。

HTH。

关于java - HDR直方图: Min not same as Max on 1 sample count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950683/

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