10

ログファイルには、リクエストの応答時間を保存します。応答時間の中央値、「リクエストの 75/90/95% が N 時間未満で処理された」などを計算する最も効率的な方法は何ですか? (私の質問のバリエーションは次のとおりだと思います:一連の数値ストリームの中央値と標準偏差を計算する最良の方法は何ですか)。

私が思いついた最善の方法は、すべての数字を読み取り、それらを並べ替えてから数字を選択することでしたが、それは本当にばかげているようです. もっとスマートな方法はありませんか?

Perl を使用していますが、任意の言語のソリューションが役立つ場合があります。

4

4 に答える 4

11

記事Calculating Percentiles in Memory-bound Applicationsを参照してください。中央値やその他のパーセンタイルを効率的に計算する方法について説明します。

また、標準偏差 (分散) を計算する際の記事:正確な計算実行分散.

于 2009-09-29T08:00:10.537 に答える
6

あなたはクイック選択を見ることができます:

http://en.wikipedia.org/wiki/Selection_algorithm

または、Wirth アルゴリズム: http://www.mail-archive.com/numpy-discussion@scipy.org/msg20059.html

中央値のベンチマークはここにあります: http://ndevilla.free.fr/median/median/index.html

于 2009-09-29T07:54:35.343 に答える
4

PDL ...Perlデータ言語をご覧ください。

また、mean /stddevに関するこれらの以前のSOの質問も参照してください。

/ I3az /

于 2009-09-29T12:50:21.330 に答える
2

ここにコード例があります: http://rosettacode.org/wiki/Standard_Deviation

于 2009-09-30T13:47:46.780 に答える