2010-11-24 6 views
2

Je développe un jeu assez rapide (Flash/Apache Mina Server back end) et j'ai de la difficulté à obtenir un benchmark précis du type de bande passante que ma configuration actuelle utiliserait.Benchmarking Apache Mina Bande passante totale

Ma question est: Comment puis-je obtenir un benchmark précis de la bande passante requise pour mes tests? Ce que je fais maintenant ne prendrait pas en compte les frais généraux?

Sur le message envoyé/reçu des méthodes que je fais

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

Je puis imprimer les valeurs actuelles toutes les 250 millisecondes (puisque c'est la fréquence des mises à jour du « monde » se font actuellement).

Avec 10 « monstres » tout déplacement au hasard autour et 1 joueur se déplaçant au hasard autour Je reçois cette sortie .. (1 seconde fenêtre ici)

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

Donc, agissant strictement sur la taille des messages (sortants) étant passé qui fonctionne à environ 621 octets/seconde ou (621/10) 62,1 octets par seconde par élément en mouvement constant sur l'écran par personne. Cela semble un peu faible, une bonne connexion haute vitesse pourrait gérer plus de 1000 mises à jour d'objets par seconde à ce "taux" sans problème.

Répondre

0

Quelque chose sent vraiment poisson ici. Selon les tests de performance fournis par eux: here mina est capable de 20K + 405 demandes d'octets par seconde sur ~ 10 connexions - beaucoup plus que ce que vous voyez. Je pense qu'il y a une sorte de problème de synchronisation qui cause le retard. Je voudrais obtenir l'aide d'une application de traçage de paquets tels que wireshark et voir si vos observations dans le code maillent avec les données de réseau brutes. J'essaierais aussi d '"inonder" le côté serveur avec plus de données si possible - cela pourrait donner une idée de l'origine du problème. J'espère que cela aide, bonne chance.