J'essaie de trouver la performance de certains de mes mandataires. J'ai essayé le Ping classe .net, mais il n'accepte pas les ports. Est-il un moyen de vérifier combien de temps une réponse a pris avec httpwebrequest?
Cela est inexact si il y a un retard de démarrage de la sauvegarde de fil. J'ai couru dans cette où il y a un délai entre le moment où vous demandez la demande et quand elle est en réalité. C'est très visible si vous essayez de tester quelque chose avec de multiples simultanées HttpWebRequests. C'est à cause de la sauvegarde de pool de threads.
WebRequest request =BuildRequest();Stopwatch sw =Stopwatch.StartNew();
using (WebResponse response = request.GetResponse()){//Potentially fetch all the data here, in case it's streaming...}
sw.Stop();Console.WriteLine("Request took {0}", sw.Elapsed);
Cela est inexact si il y a un retard de démarrage de la sauvegarde de fil. J'ai couru dans cette où il y a un délai entre le moment où vous demandez la demande et quand elle est en réalité. C'est très visible si vous essayez de tester quelque chose avec de multiples simultanées HttpWebRequests. C'est à cause de la sauvegarde de pool de threads. Qui "sauvegarde de fil"? Rien dans le code indiqué t démarrer un nouveau thread. Il y a un connexion piscine (par défaut) permettent seulement quatre connexions simultanées sur le même hôte, c'est que ce que vous pensiez? Je ne connais pas les détails exacts derrière IO ports de fin, mais je pense que le temps de connexion est bien plus susceptibles d'être importants. En comparaison avec le coût d'établissement d'une connexion TCP, le coût de création d'un thread est très faible, et les fils sont mis en commun, de toute façon. D'ailleurs, qu'entendez-vous par "inexactes"? Si il y a un retard dans la configuration de l'essai, sans doute, il y aurait un délai similaire de "vrai" code client. D'un côté client, le test ne peut jamais test complet de l'aller-retour correctement, bien sûr. Vous pouvez utiliser Stopwatch, comme par ma réponse. Je ne suis pas sûr de comprendre ce que vous demandez...
OriginalL'auteur Damith
Pourquoi ne pas juste le temps de la client?
Qui "sauvegarde de fil"? Rien dans le code indiqué t démarrer un nouveau thread. Il y a un connexion piscine (par défaut) permettent seulement quatre connexions simultanées sur le même hôte, c'est que ce que vous pensiez?
Je ne connais pas les détails exacts derrière IO ports de fin, mais je pense que le temps de connexion est bien plus susceptibles d'être importants. En comparaison avec le coût d'établissement d'une connexion TCP, le coût de création d'un thread est très faible, et les fils sont mis en commun, de toute façon.
D'ailleurs, qu'entendez-vous par "inexactes"? Si il y a un retard dans la configuration de l'essai, sans doute, il y aurait un délai similaire de "vrai" code client. D'un côté client, le test ne peut jamais test complet de l'aller-retour correctement, bien sûr.
Vous pouvez utiliser
Stopwatch
, comme par ma réponse. Je ne suis pas sûr de comprendre ce que vous demandez...OriginalL'auteur Jon Skeet