包发送频率 : 包/秒
字节发送频率: 字节/秒
获取全程的频率
total总包数
elapsed总时间
double RateMeter::getOverallRate(const struct timeval *now) const {
double elapsed;
elapsed = elapsedTime(now);
if (elapsed <= 0.0)
return 0.0;
else
return total / elapsed;
}
计算开始到结束的时间。 return TIMEVAL_SUBTRACT(*end_tv, start_tv) / 1000000.0;
end_tv-start_tv
/* Get the number of seconds the meter has been running: if it has been stopped,
the amount of time between start and stop, or if it is still running, the
amount of time between start and now. */
double RateMeter::elapsedTime(const struct timeval *now) const {
struct timeval tv;
const struct timeval *end_tv;
assert(isSet(&start_tv));
if (isSet(&stop_tv)) {//stop_tv是否为空,不空则end_tv = &stop_tv;为空,则将当前时间now赋给end_tv
end_tv = &