我正在编写一个测试应用程序来对服务器进行压力测试。我有一个消息列表,我需要在给定的时间间隔内发送,但我感兴趣的不仅仅是发送一个统一的差距,而是“聚集”消息以模拟突发。这将由UI中的滑块控制 - 一端是均匀的,另一端是“块状”。有没有一种简洁的数学方法来做到这一点?
答案 0 :(得分:0)
以下是我认为可行的方法:
var rngClumpMax = new Random();
var clumpMin = 1;
var clumpMax = 1;
var clumpSize = 1;
clumpSize = rngClumpMax.Next(clumpMin, clumpMax);
while (true)
{
List<string> messages = FetchMessages(clumpSize);
if (messages.Count > 0)
{
SendMessages(messages);
}
else
{
break;
}
}
滚动条可以设置clumpMax
的值,因此您可以在滚动条中生成大小为1和某个N
值之间的块。
如果你有一个双卷轴控件,你甚至可以设置clumpMin
并在clumpSize
和clumpMin
之间生成一个随机clumpMax
。
答案 1 :(得分:0)
因此,假设您有滑块,最大值,可以切入N个分区的时间间隔T,以及要发送的消息M的总数。然后在时间分区N,我会发送
(M/N)*(max(1-slider/max)+k*(slider/max)cosine(PI*N/T))
当滑块= 0时,这将给出完全均匀性,每个间隔到达M / N个消息。当滑块=最大时,均匀性将被完全阻尼,您可以调整参数k以使聚集更加极端。