给定一长串以毫秒为单位的延迟,我想从中计算百分位数。我得到了下面的方法,但我不确定如何验证这是否能给我准确的结果?
public static long[] percentiles(long[] latencies, double... percentiles) {
Arrays.sort(latencies, 0, latencies.length);
long[] values = new long[percentiles.length];
for (int i = 0; i < percentiles.length; i++) {
int index = (int) (percentiles[i] * latencies.length);
values[i] = latencies[index];
}
return values;
}
我想从 latencies
数组中获得第 50、95、99 和 99.9 个百分位数。
long[] percs = percentiles(latencies, 0.5, 0.95, 0.99, 0.999);
给定大量延迟,这是获得百分位数的正确方法吗?我正在使用 Java 7。
原文由 user5447339 发布,翻译遵循 CC BY-SA 4.0 许可协议
这就是您要找的: