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