X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FStatistics.cc;h=0d5e94792020cb0278109405a1b0a3d34ba0685f;hb=5a0a897af1c843762f90f316fc7608e9578901ea;hp=9129c17c0c6d8bc6439f7736c6583b0b45e70e46;hpb=26610f603ebdd465307b9621f532c1fe19fd5571;p=senf.git diff --git a/senf/Utils/Statistics.cc b/senf/Utils/Statistics.cc index 9129c17..0d5e947 100644 --- a/senf/Utils/Statistics.cc +++ b/senf/Utils/Statistics.cc @@ -81,23 +81,23 @@ senf::StatisticsBase::output(unsigned n) } // -// generate an engineering style notation i +// generate an engineering style notation // char *format_eng( float f) { static char buf[16]; - if( f > 0){ + if (f > 0) { int n = 0; - while( f >= 1000.0f){ + while( f >= 1000.0f) { f /= 1000.f; n+=3; } sprintf( buf, " %3.2fe%+03d", f, n); } - else if( f < 0){ + else if (f < 0) { int n = 0; - while( f <= -1000.0f){ + while( f <= -1000.0f) { f *= 1000.f; n+=3; } @@ -287,10 +287,17 @@ prefix_ std::string senf::Statistics::v_path() prefix_ void senf::Collector::enter(float min, float avg, float max) { accAvg_ += avg; - if (min < accMin_) accMin_ = min; - if (max > accMax_) accMax_ = max; + if (avg < accMin_) accMin_ = avg; + if (avg > accMax_) accMax_ = avg; if (++i_ >= rank_) { - StatisticsBase::enter(accMin_, accAvg_ / rank_, accMax_); + if( i_ == 1){ + // no averaging, report min & max for this period + StatisticsBase::enter(min, avg, max); + } + else{ + // averaging, report min(avgs) and max(avgs) + StatisticsBase::enter(accMin_, accAvg_ / rank_, accMax_); + } i_ = 0; accMin_ = FLT_MAX; accAvg_ = 0.0f;