2010-11-24 16 views
2

私は比較的速いペースのゲーム(Flash/Apache Mina Serverバックエンド)を開発していますが、現在の設定で使用する帯域幅のタイプの正確なベンチマークを得るのが難しいです。ベンチマークApache Minaの合計帯域幅

質問:私のテストに必要な帯域幅の正確なベンチマークを得るにはどうすればよいですか?私が今やっていることはオーバーヘッドを考慮しないでしょうか?

は、送信されたメッセージに/私は、現在の値をプリントアウト

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

をやっている方法を受けた250ミリ秒ごと(つまり、「世界」の更新プログラムは、現在行われているどのくらいの頻度であるため)。すべて私はこの出力を取得していますランダムに動き回ると1人のプレイヤーがランダムに動き回る10「モンスター」で

...(ここでは1秒ウィンドウ)

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

だから、メッセージのサイズに厳密に働く(発信)が渡され、1人につき画面上の絶え間なく動くアイテムあたり約621バイト/秒または(621/10)62.1バイト/秒になります。これは少し低いようですが、良い高速接続では、この "レート"で1秒間に1000+オブジェクトの更新を処理できます。

答えて

0

ここでは何か間違いなく魚の臭いがあります。彼らが提供するパフォーマンステストによると、here minaは〜10接続で毎秒20K + 405バイトのリクエストが可能です。

私の推測によれば、遅延の原因となっている\タイミングの問題があります。私はwiresharkのようなパケットトレースアプリケーションの助けを借りて、コード内のあなたの観測が生のネットワークデータと絡み合っているかどうかを確認します。可能であれば、より多くのデータをサーバー側に「氾濫させる」ことも試みています。これは、問題がどこにあるのかについてのいくつかの洞察を提供するかもしれません。

私はこれが幸運に役立つことを望みます。