0

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

4

2 回答 2

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滚动条的某个值之间生成块。

如果你有一个带有双滚动的控件,你可以设置 even并在和之间clumpMin生成一个随机数。clumpSizeclumpMinclumpMax

于 2012-07-12T14:49:19.747 回答
0

所以假设你有一个滑块,最大值,一个时间间隔 T,你可以分成 N 个部分,以及你想要发送的消息总数 M。然后在 N 时分,我会发送

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

当滑块 = 0 时,这将提供完全的一致性,每个间隔都有 M/N 条消息到达。当slider=max时,均匀性会被完全衰减,可以调整参数k,使clumping更加极端。

于 2012-07-12T18:33:47.367 回答