2012-07-12 31 views
0

我正在編寫一個壓力測試服務器的測試應用程序。我有一個我需要在給定時間間隔內發送的消息列表,但我不僅希望發送給他們一個統一的差距,而且還要「聚集」消息以模擬突發事件。這將由UI中的滑塊控制 - 一端是統一的,另一端是「塊狀」。有沒有一種簡潔的數學方法來做到這一點?如何聚集一系列消息

+0

那麼,這與編程有什麼關係?至少用編程語言標記問題... – Cristy 2012-07-12 13:47:05

+0

FWIW,C#。但它可以是任何語言。這是「編程」,因爲我正在編寫代碼來完成它,我猜? – 2012-07-12 13:51:21

+0

你可能想要一些類似Erlang Distribution(http://en.wikipedia.org/wiki/Erlang_distribution)的消息到達你的服務器。如果不是,維基百科的文章將在我們的研究中指出你。 – 2012-07-12 13:52:54

回答

0

因此可以說你有滑塊,最大,你可以分割成N個分割的時間間隔T,以及你想發送的消息總數M。然後,在時分N,我會發送

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

當滑塊= 0,這會給總的均勻性,與到達的每個間隔M/N的信息。當slider = max時,均勻性將完全衰減,您可以調整參數k以使凝聚更加極端。

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併產生clumpMinclumpMax之間的隨機clumpSize