M*5
2 楼
做这种的系统本身应该就会有一个保存浏览量的container(比如vector),比如说它
的保存单位是1min,那么用sliding window,过一分钟,淘汰最老的,进来最新的,可
以吗?
的保存单位是1min,那么用sliding window,过一分钟,淘汰最老的,进来最新的,可
以吗?
h*e
4 楼
建议看看RRDTool:
http://oss.oetiker.ch/rrdtool/index.en.html
http://oss.oetiker.ch/rrdtool/index.en.html
M*5
8 楼
你没有明白我说的意思,
std::vector num_time; //这个num_time每隔一分钟都会被push进一个新的值,
我们假设这是个系统的container,它里面已经有超过一个week的数据量
//initialization,
{
long sum_one_hour=0;
long sum_one_day=0;
long sum_one_week=0;
size_t len = num_time.size();
for(size_t i=1; i<=60; i++)
sum_one_hour += num_time[len-i];
for(size_t i=1; i<=1440; i++)
sum_one_day += num_time[len-i];
for(size_t i=1; i<=10080; i++)
sum_one_week += num_time[len-i];
}
// 每一分钟call一次
void onTimer(){
size_t len = num_time.size();
sum_one_hour = sum_one_hour - num_time[len-61] + num_time[len-1];
sum_one_day = sum_one_day - num_time[len-1441] + num_time[len-1];
sum_one_week = sum_one_week - num_time[len-10081] + num_time[len-1];
}
没有具体的写class的结构,只是个大概的idea,你可以自己组织这些结构在class里面
该怎么安排,应该不难写
加。
【在 f*********m 的大作中提到】
: 每隔一分钟就把落入(一分钟)窗口的click次数加起来吗?或者等要数据的时候再加。
: 要是这样的话,那计算每一天的click数(窗口大小为一天),其计算量不小啊。
:
: window
std::vector
我们假设这是个系统的container,它里面已经有超过一个week的数据量
//initialization,
{
long sum_one_hour=0;
long sum_one_day=0;
long sum_one_week=0;
size_t len = num_time.size();
for(size_t i=1; i<=60; i++)
sum_one_hour += num_time[len-i];
for(size_t i=1; i<=1440; i++)
sum_one_day += num_time[len-i];
for(size_t i=1; i<=10080; i++)
sum_one_week += num_time[len-i];
}
// 每一分钟call一次
void onTimer(){
size_t len = num_time.size();
sum_one_hour = sum_one_hour - num_time[len-61] + num_time[len-1];
sum_one_day = sum_one_day - num_time[len-1441] + num_time[len-1];
sum_one_week = sum_one_week - num_time[len-10081] + num_time[len-1];
}
没有具体的写class的结构,只是个大概的idea,你可以自己组织这些结构在class里面
该怎么安排,应该不难写
加。
【在 f*********m 的大作中提到】
: 每隔一分钟就把落入(一分钟)窗口的click次数加起来吗?或者等要数据的时候再加。
: 要是这样的话,那计算每一天的click数(窗口大小为一天),其计算量不小啊。
:
: window
f*m
9 楼
哦,了解,我也想着用一个计数器什么的,不过没有楼主这么具体。
这个方法看样子挺有效的,若是container存在这个假设成立的话(应该总有一个东西
存储不同时刻的点击量)。
【在 M********5 的大作中提到】
: 你没有明白我说的意思,
: std::vector num_time; //这个num_time每隔一分钟都会被push进一个新的值,
: 我们假设这是个系统的container,它里面已经有超过一个week的数据量
: //initialization,
: {
: long sum_one_hour=0;
: long sum_one_day=0;
: long sum_one_week=0;
: size_t len = num_time.size();
: for(size_t i=1; i<=60; i++)
这个方法看样子挺有效的,若是container存在这个假设成立的话(应该总有一个东西
存储不同时刻的点击量)。
【在 M********5 的大作中提到】
: 你没有明白我说的意思,
: std::vector
: 我们假设这是个系统的container,它里面已经有超过一个week的数据量
: //initialization,
: {
: long sum_one_hour=0;
: long sum_one_day=0;
: long sum_one_week=0;
: size_t len = num_time.size();
: for(size_t i=1; i<=60; i++)
相关阅读
上半年去他软的是不是绿卡会受影响?一般公司圣诞节到元旦期间 放几天假?quora wombats急问:户口地址翻译路MIT大牛境界都不高啊帮朋友问 有去的consulting firm的吗?有人做过amazon两道题的oa吗?本人转行经验,同时推荐一下我的前老板 (转载)Pinterest opening for ML and NLP expertsG家大神:神奇不逊教主盖茨马云,135M贱卖软银 (转载)Microsoft to lay off up to 7,800 [Mobile Hardware]內推 WalmartLabs Search組 急需3名Front End Developersflg面试考os,db,tcp/ip这些吗?六年3500万,做虐啊.。国内的工作经验,这边会核实吗?刚从夜店出来,看到几个三哥围着一个华裔小哥在打 (转载)网站前端都是用javascript和html写的吗 ?公司待遇请教一下这个面试题