Est HttpWebRequest ou Webclient plus vite
J'ai besoin d'OBTENIR le contenu d'une URL spécifique. C'est une simple tâche, bien que je veux, c'est aussi efficace que possible.
Ne WebClient ou HttpWebRequest prendre moins de mémoire?
Le cours qui va effectuer la même tâche plus vite?
La classe prend moins de temps pour initialiser?
"Cela dépend". Pourquoi ne pas l'essayer et de trouver? Il existe également des différences en termes de facilité d'utilisation et de capacités.
c'est juste la question de ce qui est plus rapide. Honnêtement, je ne sais pas comment mesurer exactement ce que j'ai mentionné dans mes questions.
Si vous ne pouvez pas le mesurer, vous n'avez pas besoin de le savoir. Il n'y a pas de simple concept de "plus rapide". Au mieux, il n'y a "plus vite en cas de circonstances particulières". En gros, ne pas prématurément optimiser.
c'est juste la question de ce qui est plus rapide. Honnêtement, je ne sais pas comment mesurer exactement ce que j'ai mentionné dans mes questions.
Si vous ne pouvez pas le mesurer, vous n'avez pas besoin de le savoir. Il n'y a pas de simple concept de "plus rapide". Au mieux, il n'y a "plus vite en cas de circonstances particulières". En gros, ne pas prématurément optimiser.
OriginalL'auteur niklon | 2014-04-01
Vous devez vous connecter pour publier un commentaire.
WebClient
est juste un wrapper autour deHttpWebRequest
. À l'aide deWebClient
est potentiellement légèrement (de l'ordre de quelques millisecondes) plus lent que d'utiliserHttpWebRequest
directement. Mais que "l'inefficacité" vient avec des avantages énormes: il nécessite moins de code, est plus facile à utiliser, et vous êtes moins susceptibles de faire une erreur lors de l'utilisation. Considérons, par exemple, de récupérer le texte d'une page Web à l'aide deWebClient
:Contraste que pour
HttpWebRequest
:Les choses deviennent vraiment intéressantes si vous souhaitez télécharger et sauvegarder des fichiers. Avec
WebClient
, c'est une simple question de faire appelDownloadFile
. AvecHttpWebRequest
, vous devez créer une lecture en boucle, etc. Le nombre de façons que vous pouvez faire une erreur avecHttpWebRequest
est époustouflant. Je le sais car j'ai fait beaucoup d'entre eux.Considérons maintenant le téléchargement des deux pages différentes. Avec
WebClient
vous pouvez écrire:Fait. Avec
HttpWebRequest
, vous auriez à dupliquer le code ci-dessus, ou de la pellicule que le code dans une méthode. Mais si vous allez à l'envelopper dans une méthode, alors pourquoi ne pas simplement utiliserWebClient
, qui a déjà fait pour vous?Quand vous considérez qu'une demande pour un rapide site Web sera probablement de l'ordre de 100 à 500 millisecondes, les quelques millisecondes généraux qui
WebClient
ajoute le montant s'élèvera à au plus à un seul chiffre en pourcentage du temps total.Utilisation
WebClient
pour les choses simples. Utilisez uniquementHttpWebRequest
si vous avez besoin le plus bas niveau de contrôle qu'il offre. Considérations de vitesse entre les deux ne sont pas pertinents.OriginalL'auteur Jim Mischel