Existe-t-il une perte de performances sur le code géré lors de la lecture / écriture d’un volume de données élevé sur le socket TCP / UDP par rapport au code non géré?

StackOverflow https://stackoverflow.com/questions/501775

Question

Pensez-vous que l'utilisation du socket C # TCP / UDP dans l'application gérée peut traiter (à peu près) la même quantité de données que la version C ++ native? Sinon, quelle est la quantité de données que nous considérons comme native ou c # est préférable d’utiliser et quel est le plus gros obstacle à la mise en œuvre du côté géré?

Était-ce utile?

La solution

D'après mon expérience, la vitesse du réseau et la latence sont des facteurs plus importants en termes de performances que le code géré ou non géré. En fait, il en va de même pour l’accès à la base de données.

Autres conseils

La réponse doit dépendre, dans une certaine mesure, du matériel.

Je vous suggère d'écrire de petits programmes prototypes, pour expérimenter.

Les deux peuvent gérer la même quantité de données. La question est la vitesse et l'utilisation de la mémoire. C # s'est avéré très lent dans la plupart des scénarios: il n'y a donc aucune raison de ne pas l'utiliser. L'utilisation de C # pour les sockets a quelques implications en termes de mémoire (principalement, il se produit beaucoup d'épingles qui fragmenteront votre tas). La chose la plus importante à comprendre est documentée ici . Si le lien est brisé (cela ne fonctionne pas de mon côté, mais c'est peut-être notre Internet louche), Google l'a mis en cache .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top