| 31 | } |
| 32 | |
| 33 | void TPingTracker::RegisterRTT(float rtt) { |
| 34 | Y_ASSERT(rtt > 0); |
| 35 | float keep = RTTCount / (RTTCount + 1); |
| 36 | AvrgRTT *= keep; |
| 37 | AvrgRTT += (1 - keep) * rtt; |
| 38 | AvrgRTT2 *= keep; |
| 39 | AvrgRTT2 += (1 - keep) * Sqr(rtt); |
| 40 | RTTCount = Min(RTTCount + 1, RTT_AVERAGE_OVER); |
| 41 | //static int n; |
| 42 | //if ((++n % 1024) == 0) |
| 43 | // printf("Average RTT = %g (sko = %g)\n", GetRTT() * 1000, GetRTTSKO() * 1000); |
| 44 | } |
| 45 | |
| 46 | void TPingTracker::IncreaseRTT() { |
| 47 | const float F_RTT_DECAY_RATE = 1.1f; |