2013-08-14 4 views
1

J'utilise l'exemple akka-sample-remote pour faire un test de performance. Il semble que le temps pour l'aller-retour est de 3ms maintenant. qui comprend (deux acteurs dans deux jvm dans le même hôte en utilisant localhost).performance de akka remote

1 A-> B: envoyer une demande mathop 2 B-> A: renvoyer le résultat

Je soupçonne que la plupart du temps est consacré à la sérialisation. Mais pas sûr. Quelqu'un at-il une suggestion comment pourrais-je améliorer la performance plus loin? Est-ce vraiment la sérialisation qui prend le plus de temps. Comme ils sont sur le même hôte. Donc, je suppose que le réseau ne devrait pas prendre beaucoup de temps?

+0

C'est l'heure de l'opération de MathOp incluse dans les 3 ms ou est-ce juste un no-op ?! –

+1

'3ms' est très moins. Qu'est-ce qui te fait penser que c'est mauvais. – Jatin

+0

Non, ce n'est pas la sérialisation pour une communication aussi simple. Parlez-vous couramment des tests de performance? Par exemple, exécutez-vous le test plusieurs fois avant de commencer les mesures? –

Répondre

1

Pourquoi pensez-vous que c'est un mauvais numéro?

Ne pas mélanger la latence et le débit. Le système à un seul thread qui a un débit de 60k éléments par seconde n'a pas de latence de 1000/60k ms.

J'ai utilisé Redis qui est une application monothread et il est capable de consommer ~ 100k messages par seconde mais avec plus de 500 connexions simultanées. Il ne fournit pas de latence nanoseconde comme il pouvait le voir à première vue.

+0

Merci d'avoir répondu. En fait, je m'inquiète de la latence, pas du débit. Je veux avoir un système de trading. Donc, je veux savoir si la latence de akk remoting répond à la performance requise. – Mike

+0

Vous devriez donc lire des articles et des présentations sur Lmax et leur modèle de disrupteur ici en discussion ou par ex. sur infoq Ils ont aussi le système commercial et se soucient vraiment de la latence en points de vue microsecondes. Des présentations très inspirantes, y compris des caches de processeur, etc. –

+0

Merci. Je regarderai. Je suis toujours ouvert pour toutes les suggestions sur ce test de performance simple. comme 1: est-ce le meilleur que puisse faire Akka? 2 en utilisant protobuf améliorera la performance dans cette communication simple; – Mike