2010-11-24 69 views
2

我正在開發一個相對快節奏的遊戲(Flash/Apache Mina服務器後端),我很難獲得我當前安裝使用的帶寬類型的準確基準。基準測試Apache Mina總帶寬

我的問題是:如何獲得測試所需帶寬的準確基準?我現在在做什麼不會考慮到任何開銷?

上發送的消息/接收的方法,我做

[out/in]Bandwidth+= message.toString().getBytes().length; 

然後打印出當前值每250毫秒(因爲那是多麼頻繁的「世界」的更新,目前完成)。

隨着10「怪獸」的所有隨機走動和1名玩家隨機走動我得到這個輸出。(在這裏是1秒窗口)

In bandwidth: 1647, Outgoing: 35378 
In bandwidth: 1658, Outgoing: 35585 
In bandwidth: 1669, Outgoing: 35792 
In bandwidth: 1680, Outgoing: 35999 

所以在消息的大小嚴格行事(傳出)被傳遞,每個人每屏幕上不斷移動的物品每秒約621字節/秒或(621/10)62.1字節。這似乎有點低,一個好的高速連接可以在這個「速率」下每秒處理1000+個對象更新。

回答

0

東西在這裏確實聞起來很腥。根據他們提供的性能測試:here mina能夠在〜10個連接上每秒處理20K + 405字節的請求 - 這比您看到的要多得多。

我的猜測是,有一些領導\時間問題正在進行,這是造成延遲。我會爭取諸如wireshark之​​類的包跟蹤應用程序的幫助,並查看代碼中的觀察結果是否與原始網絡數據網格相關。如果可能的話,我還會嘗試用更多的數據「氾濫」服務器端 - 這可能會提供一些有關問題出現的信息。

我希望這會有所幫助,祝你好運。