Nous évaluons actuellement différentes méthodes IPC (ou plutôt RPC) pour notre projet actuel, qui n'en est qu'à ses débuts. La performance est un gros problème, et nous faisons donc quelques mesures pour faciliter notre choix. Nos processus qui communiqueront seront sur la même machine.Mesures de performances moyennes pour la CIB locale
Une option valide séparée consiste à éviter complètement IPC (en encapsulant les fonctionnalités de l'un des processus dans une DLL .NET et que l'autre l'utilise), mais c'est une option que nous aimerions vraiment éviter, comme ces deux logiciels sont développés par deux sociétés distinctes et nous trouvons très important de maintenir de bonnes «clôtures», qui font de bons voisins.
Nos tests consistaient à transmettre des messages (qui contiennent des objets BLOB de tailles diverses) à travers les limites de processus en utilisant chaque méthode. Ce sont les chiffres que nous obtenons (gamme de performance est en corrélation avec la gamme de la taille des messages):
- Web Service (SOAP sur HTTP):
- 25-30 Mo/s lorsque les données binaires sont codées en base64 (par défaut)
- 70-100 MB/s lorsque MMD est utilisé
- Remoting .NET (BinaryFormatter sur TCP): 100-115 MB/s
- groupe de contrôle - méthode DLL appel + mem copie: 800-1000 MB/s
Maintenant, nous avons cherché dans tous les sens pour certains chiffres de performance moyenne pour ces (et d'autres) Méthodes IPC, y compris les performances des sockets de bouclage TCP bruts, mais n'ont pas pu en trouver. Est-ce que ces chiffres ont l'air sains? Pourquoi les performances de ces méthodes IPC locales sont-elles au moins 10 fois plus lentes que la copie de la mémoire? Je ne pouvais pas obtenir de meilleurs résultats même lorsque j'ai utilisé des prises brutes - est-ce que les frais généraux de TCP sont si élevés?
@ user289770, je suppose que vous avez des charges utiles assez importantes, sinon vous serez également intéressé par la latence. –
@ user289770, Avez-vous mesuré le taux de transfert, y compris les frais généraux du protocole ou seulement la charge utile? Avez-vous estimé combien de frais généraux vous avez? –
@Albin, oui, beaucoup de mes messages ont des charges utiles assez importantes (pouvant aller jusqu'à 30 Mo). Le reste sera de plusieurs Ko. J'ai mesuré le taux de transfert, y compris les frais généraux du protocole - c'est tout le problème. –