标签归档:限速

RSS feed of 限速

最后更新于 .

之前已经在博客里写过一篇关于限速的文章,这几天给别人用时发现,用C方式的结构式代码的确不方便别人使用,所以就用C++封装了一下,用起来也简单了很多。
主要实现了:
1.对速度的限制
2.动态调整速度的侦测周期,减少由于限速而带来的对CPU的消耗。
希望大家批评建议。

使用方法很简单,如下:

#include <iostream>
#include "timelimit.h"
using namespace std;
int main()
{
    CTimeLimit timelimit;
    //设置每秒最多10个
    timelimit.Init(10);
    while(1)
    {
        timelimit.DetectAndLimit();
        printf("%d\n",timelimit.Speed());
    }
}

源代码下载

 

最后更新于 .

在工作中,我们可能经常会用到压力测试等循环执行执行发包的机制,为了防止目标机压力过大,必然需要一个限速逻辑来进行控制,之前在网上看了看,发现基本没有这方面的介绍,于是自己写了一个。 这段代码使用了已经大半年,基本能够满足各种限速的要求,其中的动态调整逻辑也能够保证对限速本身对cpu的消耗不会太大,希望对大家有所帮助。(ps:这段代码是在linux下使用的,当然只需要将获取时间的函数改一下,那么在windows下也可以使用的,如果有朋友改了记得通知我一下哦~~)

#include <sys/time.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
struct timeval tpstart,tpend;
int timeuse;
gettimeofday(&tpstart,NULL);
int countPerSec=0;//计算请求数
int statCount;//统计用
int iMaxReqPerSec=100;//最大限速
int trueMaxReq=iMaxReqPerSec;//动态调整的判定大小
while(1)
{
    //业务要做的事情 ...