如何聚集一系列消息

时间:2012-07-12 13:42:17

标签: c# math testing scheduling messaging

我正在编写一个测试应用程序来对服务器进行压力测试。我有一个消息列表,我需要在给定的时间间隔内发送,但我感兴趣的不仅仅是发送一个统一的差距,而是“聚集”消息以模拟突发。这将由UI中的滑块控制 - 一端是均匀的,另一端是“块状”。有没有一种简洁的数学方法来做到这一点?

2 个答案:

答案 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并在clumpSizeclumpMin之间生成一个随机clumpMax

答案 1 :(得分:0)

因此,假设您有滑块,最大值,可以切入N个分区的时间间隔T,以及要发送的消息M的总数。然后在时间分区N,我会发送

(M/N)*(max(1-slider/max)+k*(slider/max)cosine(PI*N/T))

当滑块= 0时,这将给出完全均匀性,每个间隔到达M / N个消息。当滑块=最大时,均匀性将被完全阻尼,您可以调整参数k以使聚集更加极端。