Benchmark de Windows Communication Foundation
|
Je viens de faire un mini benchmark de Windows Communication Foundation (WCF) pour mon client et je vous propose, dans cet article, de partager les résultats avec vous.
|
|
Vu
3500
fois
|
Généralité
Description global des tests :
- Tous les tests ont été réalisés en passant par un service simple
- Les temps exprimés sont en millisecondes
- Seul l’appel à la méthode du service est comptabilisé
- Pour les tests avec WCF coté client, l’appel à la méthode Close() du proxy est fait à chaque appel (sauf dans le test 2)
- Le basicHttpBinding a été utilisé lors de l’utilisation de WCF
- L'abréviation WS signifie que l'on n'utilise pas WCF. En gros, sur le client on fait un "Add Web Reference ...". Dans le cas contraire, on fait un "Add Service Reference ..."
Test 1
Description :
- Ce test compare les performances entre l'utilisation d'un client WCF et WS et un serveur WCF ou WS
- La dernière colonne indique les temps de réponse lorsque WCF n’est utilisé ni coté client, ni coté serveur (WebService à la mode Framework 1.x)
|
WS coté client –
WCF coté serveur |
WCF coté client –
WCF coté serveur |
WS coté client –
WS coté serveur |
|
125 |
22937 |
2094 |
|
46 |
250 |
109 |
|
46 |
250 |
62 |
|
46 |
250 |
78 |
|
46 |
250 |
62 |
|
46 |
281 |
109 |
|
46 |
265 |
78 |
Test 2
Description : ce test reprend exactement le Test 1 mais cette fois-ci, le proxy WCF (donc coté client) n’est pas recréé à chaque fois. Il est gardé en cache (dans une variable globale)
|
WCF coté client –
WCF coté serveur |
|
453 |
|
62 |
|
93 |
|
46 |
|
46 |
|
46 |
|
46 |
Test 3
Description :
- Appel après une longue période d’inactivité (plus de 30 minutes).
- Identique au Test 1
|
Date des appels |
Ordre |
WS coté client –
WCF coté serveur |
WCF coté client –
WCF coté serveur |
|
15h45 |
- |
484 |
- |
|
16h31 |
WCF puis WS |
46 |
16953 |
|
17h41 |
WS puis WCF |
62 |
16875 |
Conclusion
- La création du proxy WCF est très gourmande. Si on n'utilise pas de cache l'appel est à peu près 5 fois plus lent que l’appel du même Webservice sans WCF
- Un overhead très important apparait lors de l’utilisation de WCF de bout en bout lorsque le service n’a pas été invoqué pendant une période prolongée. Il s'agit certainement d'un problème de configuration mais je n'ai toujours pas trouvé la cause.
- Le test 1 met en évidence un gain d’à peu près 25% entre un environnement WS coté client – WS coté serveur et WS coté client – WCF coté serveur (en faveur de la deuxième configuration)
Liens utiles :
 |
|
Publié le
11/07/2007
|
|
Auteur:
Aleks
|
|
|