ネットワークのジッター

ネットワークのジッター(Jitter)とは、Pingの揺らぎのことです。

明確な定義はなく計算式もベンチマークアプリごとに異なります。 数値を比較する場合は必ず同じベンチマークを利用しましょう。

最大値と最小値の範囲 編集

計測期間中の最大値と最小値の差をJitter値とするもっともシンプルは方法です。

float Range(List<float> pings) => pings.Max() - pings.Min();

標準偏差 編集

標準偏差を使う方法が一般的だとは思う。

float StdDev(List<float> pings) {
    int n = pings.Count;
    float mean = pings.Average();
    float sum = 0f;
    foreach (var x in pings) 
        sum += (x - mean) * (x - mean);
    return (float)Math.Sqrt(sum / (n - 1)); // sample stddev
}

連続差の平均絶対値 編集

連続差の平均絶対値であれば瞬間的な不安定さが不定期に発生する回線をあぶり出せる。

float MadSuccessive(List<float> pings) {
    int n = pings.Count;
    if (n < 2) 
        return 0f;
    float sum = 0f;
    for (int i = 1; i < n; ++i) 
        sum += Math.Abs(pings[i] - pings[i - 1]);
    return sum / (n - 1);
}