Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C负载测试发电机_C - Fatal编程技术网

C负载测试发电机

C负载测试发电机,c,C,我正在尝试创建一个函数,它每秒发送100个调用,每60秒增加到每秒200个调用。代码如下 for (i = 1; i <= 240; i++) { for (j = 0; j <= 100; j++) { send_tcp(); } sleep(1); if(i %60 == 0) j=j+200; else j = j*1; } 对于(i=1;i是的,存在逻辑错误。您将循环计数器与

我正在尝试创建一个函数,它每秒发送100个调用,每60秒增加到每秒200个调用。代码如下

for (i = 1; i <= 240; i++) {
        for (j = 0; j <= 100; j++) {
          send_tcp();
        }
        sleep(1);
        if(i %60 == 0) j=j+200;
        else j = j*1;
}

对于(i=1;i是的,存在逻辑错误。您将循环计数器与所需的迭代次数混淆。这是您需要执行的操作:

int n_calls = 100;
for (i = 1; i <= 240; i++) {
        for (j = 0; j < n_calls; j++) {
          send_tcp();
        }
        sleep(1);
        if(i %60 == 0) n_calls+=200;

}
int n_calls=100;

对于(i=1;i你总是在第二个
for
循环,从0到100,循环次数是101次。你更改J的值,但是当
for
启动时,它会将
J
的值再次设置为0。如果我明白你想做什么,那就是更改
i
增加时调用
send\u tcp
的次数。然后您需要将代码更改为以下内容:

count_j=100;
for (i = 1; i <= 240; i++) {
        for (j = 0; j <= count_j; j++) {
          send_tcp();
        }
        sleep(1);
        if(i %60 == 0) count_j+=200;

}
count_j=100;

对于(i=1;我啊是的,谢谢你指出这一点。我也犯了这个错误。但是如果你试着这样做,如果n_类是500,一个send_tcp()循环将比一个100 send_tcp()循环要长。如果100 send_tcp()可以在1秒内发送,那么每个500 send_tcp()循环将花费更长的时间也许需要3秒钟才能完成。实际上,我需要每秒发送n个电话,不管n个电话有多大。(对不起,用英语很难表达这一点……但我希望我能表达我的意图)你的目标是“无论n个电话有多大,每秒发送n个电话”无法实现。您将需要无限的带宽和处理能力。是的,目的是这样,但我将其限制为100300500。但结果是,对于每秒执行100个请求,但对于300和500,则需要更长的时间。因此,这使得服务器端很难捕获处理的确切时间…我如何发送例如n_等级=500/秒(不是3秒)对于这个问题?打开和关闭套接字并发送数据需要一定的时间。即使是500次呼叫也可能需要超过一秒钟。是的,你是对的。为了测量cps,我需要除以每次的数据包数,以获得cps的数量。正如你所说,套接字的打开和关闭有很多限制结束。谢谢你指出这一点。