47 votes

La Performance de SAVON vs XML-RPC ou de REPOS

Les arguments au sujet de la simplicité de solutions à l'aide de XML-RPC ou de REPOS sont faciles à comprendre et difficile de discuter.

J'ai aussi souvent entendu des arguments que l'augmentation de la surcharge de SAVON peut influencer de manière significative la bande passante utilisée et peut-être même le temps de latence. Je voudrais voir les résultats d'un test qui permet de quantifier l'impact. Tout savoir une bonne source pour ce type d'information?

63voto

pjz Points 11925

Le principal impact de la vitesse de SAVON vs RESTE n'a rien à voir avec la vitesse du fil, mais avec possibilité de mise en cache. RESTE suggère l'utilisation du web sémantique au lieu d'essayer de tunnel sur elle via XML, de sorte que les services web RESTful sont généralement conçus pour utiliser correctement les en-têtes de cache, de sorte qu'ils fonctionnent bien avec la web standard d'infrastructure comme la mise en cache des procurations et même les caches du navigateur. Aussi, en utilisant le web sémantique signifie que des choses comme les ETags et automatique de compression zip sont bien entendu des moyens d'accroître l'efficacité.

..et maintenant vous dites que vous voulez de repères. Eh bien, avec Google, j'ai trouvé un gars dont les tests montrent que le RESTE à 4-6x plus rapide que du SAVON et de l'autre papier qui favorise le REPOS.

19voto

FlySwat Points 61945

RESTE qu'un protocole ne définit pas la forme de l'enveloppe du message, tandis que le SAVON n'ont la présente norme.

À cet effet, il est quelque peu simpliste d'essayer et de comparer les deux, ils sont des pommes et des oranges.

Cela dit, une enveloppe SOAP (moins les données) est seulement quelques-uns k, donc il ne devrait pas y avoir de différence notable dans la vitesse à condition que vous êtes de la récupération d'un objet sérialisé à la fois via SOAP et REST.

8voto

MarkR Points 37178

Du SAVON et de tout autre protocole qui utilise XML généralement gonfle vos messages un peu - cela peut ou peut ne pas être un problème selon le contexte.

Quelque chose comme JSON serait plus compact et peut-être plus vite à serialise / deserialise - ne l'utilisez pas, c'est uniquement pour cette raison. Faire ce que vous vous sentez un sens au temps et de la modifier si c'est un problème.

Tout ce qui utilise HTTP généralement (Sauf en cas de réutilisation d'une de HTTP 1.1 keepalive de connexion, de nombreuses implémentations ne) démarre une nouvelle connexion TCP pour chaque demande; c'est assez mauvais, surtout à haute latence des liens. HTTPS est bien pire. Si vous avez beaucoup de court demandes provenant d'un expéditeur à un destinataire, pensez à comment vous pouvez prendre ce traitement.

À l'aide de HTTP pour tout type de RPC (si le SAVON ou autre chose) est toujours à engager des coûts indirects. D'autres protocoles RPC généralement vous permettre de garder une connexion ouverte.

6voto

Troy Alford Points 8676

Il y a quelques études qui ont été réalisées au sujet de ce que vous pouvez trouver instructif. Veuillez consulter les documents suivants:

Il y a aussi une (un peu à l'extérieur de la date) performance intéressante conversation sur le sujet dans les Forums MSDN.

En bref - la plupart de ces sources semblent d'accord pour dire que le SAVON et le REPOS sont à peu près les mêmes performances pour une utilisation générale de données. Certains toutefois, les résultats semblent indiquer qu'avec des données binaires, RESTE peut effectivement être moins performant. Voir les liens dans le forum j'ai fait un lien pour plus de détails sur cette.

5voto

anjanb Points 5579

L'expansion sur "pjz" 's réponse.

Si vous obtenez beaucoup de l'INFORMATION(get* type d'appels) SAVON à base d'opérations, il n'est actuellement pas possible de les mettre en cache. Mais si vous étiez à la mise en œuvre de ces mêmes opérations à l'aide de REPOS, il est possible que les données(dépend de votre contexte d'affaires) peut être mis en cache, comme mentionné ci-dessus. Parce que le SAVON utilise POST, pour ses opérations, il ne peut pas en cache les informations sur le serveur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X