C负载测试发电机
我正在尝试创建一个函数,它每秒发送100个调用,每60秒增加到每秒200个调用。代码如下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是的,存在逻辑错误。您将循环计数器与
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的数量。正如你所说,套接字的打开和关闭有很多限制结束。谢谢你指出这一点。