1 #include "tools/time.hh" 2 #include "to_string.hh" 6 template<
size_t kDuration,
size_t kGranularity = 1>
9 static const size_t kSize = kDuration + 1;
12 : up_(tools::MonoTime(NULL))
16 ::memset(cnt_, 0,
sizeof cnt_);
18 static size_t granularity(){
return kGranularity;}
19 static size_t duration(){
return kDuration;}
20 void occur(
size_t times = 1){
22 cnt_[lasti_ % kSize] += times;
27 const size_t s = sumTo(&dur);
30 double frequencyDouble(){
33 const double s = sumTo(&dur);
36 std::string toString()
const{
41 <<
", cnt_={"<<cnt_[0];
42 for(
size_t i = 1;i < kSize;++i)
48 size_t sumTo(
size_t * dur)
const{
53 }
else if( lasti_ < kSize){
54 for(d = 1;d < lasti_;++d)
58 size_t cur = lasti_ % kSize;
59 for(
size_t i = 0;i < kSize;++i)
69 time_t t = tools::MonoTime(NULL);
72 if(e < lasti_ + kSize){
74 cnt_[lasti_ % kSize] = 0;
76 ::memset(cnt_, 0,
sizeof cnt_);
81 size_t idx(time_t cur)
const{
Definition: to_string.hh:43
Definition: freq_counter.hh:7