J'ai un service WCF qui est utilisé de manière synchrone, mais son mode ConcurrencyMode est défini sur la valeur ConcurrencyMode.Multiple, car le service est réellement sans état. Combien de frais généraux ce mode impose-t-il? Est-il sensé de changer le mode à ConcurrencyMode.Single?WCF. Overhead de ConcurrencyMode.Multiple
Répondre
Cela n'impose pas vraiment de surcharge - autre que le fait que l'instance de service unique doit gérer l'accès simultané, il doit être de 200% thread-safe - et c'est une programmation assez délicate. Passer à ConcurrencyMode.Single rend la programmation plus simple - plus de soucis concernant la concurrence dans la classe de service. Mais il sérialise toutes les demandes - une seule à la fois peut être traitée et deviendra rapidement un goulot d'étranglement. Vous mentionnez que votre service est sans état - alors pourquoi ne pas le faire en utilisant la meilleure pratique généralement acceptée - pas un singleton, mais une classe de service "par appel" régulière. Dans ce mode, chaque requête reçoit une nouvelle instance de votre classe de service, il n'y a pas de problème de programmation multithread nécessaire (tout le multithread est géré par l'exécution de WCF), vous obtenez une gestion simultanée de plusieurs requêtes - pour moi, pas de bas!
- 1. WCF ConcurrencyMode.Multiple meilleures pratiques de connexion et Caching
- 2. ASP meilleures pratiques Overhead
- 3. Immutable Dictionary overhead?
- 4. Qu'est-ce que "overhead"?
- 5. Comment puis-je faire une seule méthode WCF ConcurrencyMode.Multiple lorsque le service est ConcurencyMode.Single
- 6. overhead à "using" déclarations inutilisées?
- 7. Overhead/performance des structures de données Python
- 8. HSM - cryptoki - ouverture de sessions overhead
- 9. overhead pour une arène tas vide
- 10. Incorporation de Mono - Overhead d'un commutateur de contexte natif ->
- 11. Performance overhead de performance: dans Smalltalk (spécifiquement Squeak)
- 12. Problèmes de concurrence WCF
- 13. Méthode de service WCF renvoyant null
- 14. Comment savoir quand mon overhead de base de données MongoDB atteint sa limite?
- 15. De combien de mémoire "overhead" JDOM a-t-il besoin pour générer des fichiers XML?
- 16. Performances de l'appel de service Web WCF
- 17. Comment appeler un service singleton WCF dans un service singleton WCF sans suspension?
- 18. Quelle liaison WCF est la plus performante?
- 19. WCF: maxConcurrentCalls a épuisé
- 20. WCF Concurrency
- 21. Comment limiter le nombre d'instances d'un service WCF dans IIS?
- 22. TargetInvocationException sur plusieurs appels de service WCF
- 23. Service WCF unique pour plusieurs connexions client
- 24. Application de service WCF ou bibliothèque de service WCF?
- 25. Problème de désérialisation WCF
- 26. Types de retour WCF
- 27. Injection de dépendances wcf
- 28. Erreur de désérialisation WCF
- 29. WCF de JavaScript
- 30. Performance d'hébergement de WCF
Merci pour la réponse. En ce qui concerne le mode "par appel", je prévois d'ajouter ultérieurement des dépendances sécurisées au thread. Donc je ne pense pas que ce soit la meilleure option pour utiliser le mode "par appel". –
@bsnote: pourquoi pas ?? Si le service est effectivement apatride, pourquoi n'utilisez-vous pas le modèle le plus simple possible pour cela? Pourquoi le rendez-vous inutilement dur et difficile sur vous-même? –
Le problème est que les dépendances seront injectées dans le service chaque fois qu'il est créé. Probablement le temps de création est insignifiant mais quels sont les avantages du mode "par appel" dans ce cas s'il n'y a pas besoin de traiter les problèmes de concurrence? –