2008-12-19 12 views
0

Lors du développement d'un système client-serveur utilisant .NET 2.0 (.NET 2.0) pour les communications, j'ai trouvé un comportement extrêmement bizarre si mes objets distants renvoyaient des jeux de données personnalisés. Pour une raison quelconque, il faut de 0,5 à 4 secondes pour que l'infrastructure d'accès distant traite une instance de jeu de données du côté client, si j'utilise le canal TCP avec le formatage binaire (l'option la plus rapide!). Le comportement s'exprime de la façon suivante: après le démarrage de démarrage, le client peut effectuer autant d'appels au serveur pour obtenir un jeu de données personnalisé en quelques dizaines de millisecondes; une fois au repos pendant 4-5 minutes (aucun appel au côté distant pendant ce temps), chaque appel conséquent à l'ensemble de données personnalisé renvoyé côté distant prend de 0,5 à 4 secondes. Si l'appel distant renvoie autre chose à l'exception du jeu de données personnalisé, tout se répète en dizaines de millisecondes. Si je change ma configuration d'accès distant au canal HTTP avec le formatage binaire, tout fonctionne parfaitement. J'utilise cette configuration comme une solution de contournement, mais ce n'est pas la solution, mais une solution de contournement..NET Réduction de la dégradation des performances lors du renvoi de jeux de données personnalisés

Un jeu de données personnalisé est créé en créant un nouveau jeu de données XSD et en faisant glisser une table à partir de l'Explorateur de serveurs (serveur SQL), puis en supprimant la partie adaptateurs de table de l'ensemble de données.

J'ai créé un projet de test d'os nu (download) qui présente le comportement dont je parle. J'ai inclus le fichier ReadMe avec des étapes sur la façon de reproduire le problème.

Merci!

PS. This was an original question, mais maintenant je l'ai réduit à des ensembles de données personnalisés, qui sont apparemment un coupable, donc s'il vous plaît ne le marque pas comme un doublon.

Répondre

0

Je suis tombé sur l'article sur le format de sérialisation au cours de mes recherches. C'est pourquoi j'ai ce cas comme une option séparée dans mon projet de test. L'ajustement manuel de BinaryFormat augmente le temps de traitement de 0,5 à 4 secondes.

1

Vous pouvez essayer quelques-unes des étapes à partir de ce article, j'en ai utilisé quelques-unes auparavant et il y avait une amélioration considérable.

Questions connexes