95% percentile
Java で自分のデータセットから計算しようとしています。私のデータセットには次のようなものがあります-
私はConcurrentHashMap
このようなキーと値のペアを持つことになります-
Key = 30
Value = 10
これは、30 ミリ秒で 10 回の呼び出しが返されたことを意味します。
もう一つの例-
Key = 20
Value = 5
つまり、20 ミリ秒で 5 回の呼び出しが返ってきました
上記のマップから、Java で 95% パーセンタイルを計算しようとしています。
上記のマップからJavaでそれを行う方法の例を誰かが提供できますか? 助けてくれてありがとう
更新されたコード:-
以下は、マップから95パーセンタイルを計算するコードです-
/**
* A simple method to log 95th percentile information
*/
private static void logPercentileInfo() {
double total = 0;
for (Map.Entry<Long, Long> entry : CassandraTimer.histogram.entrySet()) {
long value = entry.getKey() * entry.getValue();
total += value;
}
double sum = 0.95*total;
double totalSum = 0;
SortedSet<Long> keys = new TreeSet<Long>(CassandraTimer.histogram.keySet());
for (long key : keys) {
totalSum += CassandraTimer.histogram.get(key);
if(totalSum >= sum) {
System.out.println(key);
}
}
}
誰かが見て、私が正しく書いたかどうかを教えてもらえますか?