2009-04-09 7 views

Répondre

2

Quel genre de InstanceContextMode et ConcurrencyMode vous utilisez sur votre classe de service? S'il s'agit d'instances PerCall, vous pouvez vérifier si vous pouvez réduire le temps de création d'une instance de serveur pour chaque appel.

S'il s'agit d'instances uniques (singleton) - en avez-vous vraiment besoin? :-) Essayez d'utiliser PerCall à la place.

Marc

1

Quelle liaison utilisez-vous? Si vous utilisez HTTP, vous pouvez obtenir de meilleures performances avec TCP.

Selon toute vraisemblance, le goulot d'étranglement va être plus haut dans le pipeline WCF et éventuellement dans vos objets hébergés.

Nous aurions besoin de plus de détails sur votre configuration WCF pour être en mesure d'aider beaucoup.

1

Eh bien, quel genre de données envoyez-vous, et sur quelle liaison?

Est-ce le problème de la taille des demandes (bande passante), ou la quantité des demandes (latence). En cas de latence, faites simplement moins de demandes, mais plus grandes ;-p

Pour la bande passante: si vous envoyez des données binaires via http, vous pouvez activer MTOM - cela vous permettra d'économiser quelques octets. Vous pouvez activer la compression sur le serveur, mais ce n'est pas garanti.

Si vous utilisez .NET vers .NET, vous pouvez envisager protobuf-net; ceci a des crochets de WCF pour permuter le formateur (DataContractSerializer) pour employer le format binaire de "protocoles de protocoles" de google, qui est très petit et rapide. Je peux conseiller sur comment sur demande.

Autre que: envoyer moins de données ;-P

+0

+1 envoyer moins de données. Ou «n'utilisez pas le service autant»;) –

0

Les symptômes que vous décrivez pourrait être causé par quoi que ce soit. Vous devrez l'affiner en utilisant un profileur tel que dotTrace de JetBrain ou AQTime de QA automatisé.

Ou vous pouvez le faire à l'ancienne en instrumentant votre code (ce que font les profileurs pour vous). Collectez l'heure de début avant le début de votre opération. Quand cela se termine, soustrayez l'heure de début de l'heure actuelle pour déterminer le temps écoulé, puis imprimez-la ou connectez-la ou quoi que ce soit. Faites de même avec les méthodes que cette opération appelle. Vous verrez rapidement quelles méthodes prennent le plus de temps. Ensuite, passez à ces méthodes et faites de même, en découvrant ce qui fait les prend tellement de temps, etc.

0

"Améliorer les performances de mon service .Net WCF" - son terme très générique vous demandez, de différentes façons nous peut améliorer les performances et, en même temps, vous devez trouver celui qui provoque les performances comme l'accès à la base de données dans les méthodes WCF.

Veuillez essayer de connaître les fonctionnalités disponibles dans WCF comme la méthode oneWay WCF, elle vous aidera à trouver des moyens d'améliorer les performances.

Merci Venkat

0

Voici un article avec quelques statistiques de réels systèmes de production, vous pourriez utiliser pour comparer/comparer votre performance.

WCF Service Performance

Questions connexes