我一直在使用Java中的HdrPercentile库来监视系统中某些数字的分布。
我决定走捷径,使用outputPercentileDistribution让HdrHistogram向我展示它对我的数据的看法。
输出是有用的,但是我很难理解HdrHistogram是如何控制它打印的桶数的。
这个数字由函数参数控制。
根据百分位数生成直方图数据的值分布的文本表示。该分布以指数增加的分辨率输出,每一个指数递减的半距离包含dumpTicksPerHalf百分位数报告滴答点。 percentileTicksPerHalfDistance每指数递减半距离的报告点数。
我不太明白它是怎么翻译成水桶的。我确实注意到,我通过的次数越多,我得到的桶就越多。
有人能解释一下水桶是怎么设置的吗?
发布于 2016-01-12 14:35:39
在查看了源代码之后,我想我看到了那里发生了什么。
函数参数的命名有点不正确。它真的应该是percentileBucketsPerHalfDistance。
该系统需要一半的距离到100% (最初的50%),并将其分割成给定数量的桶。因此,对于percentileBucketsPerHalfDistance = 2,我们得到了0和25%的桶。
然后,这个系统将剩下的一半再用到100%,比方说50%到75%,然后把它分割成所需的桶数,比如50 %和62.5%。
然后我们处理75%到87.5%,再分裂成2,因此我们得到75%和81.25%。
最终,我们接近100%,超过了99.9997138977和100.0。
https://stackoverflow.com/questions/34686235
复制相似问题