J'essaie d'extraire des informations de synchronisation détaillées, un peu comme l'onglet Timing dans Chrome, à partir d'une requête HTTP effectuée via HttpWebRequest dans .NET:

enter image description here

Quelqu'un sait si cela est possible? Je ne trouve aucune autre documentation que celle de la totalité de la demande dans un chronomètre. Mais je veux vraiment les détails, comme le temps qu'il faut pour résoudre à partir du DNS, le temps qu'il faut pour demander, le téléchargement de contenu, etc.

4
ThomasArdal 16 nov. 2017 à 13:02

4 réponses

Meilleure réponse

Pour référence future, je réponds à ma propre question. Bien que la réponse proposée avec l'enregistreur puisse fonctionner, j'ai trouvé une approche meilleure (IMO) et beaucoup plus simple:

var waiting = new Stopwatch();
var contentDownload = new Stopwatch();
waiting.Start();
using (var webResponse = (HttpWebResponse)webRequest.GetResponse())
{
    waiting.Stop();
    contentDownload.Start();
    using (var reader = new StreamReader(webResponse.GetResponseStream()))
    {
        var body = reader.ReadToEnd();
        contentDownload.Stop();
    }
}

C'est vraiment aussi simple que ça. L'appel GetResponse correspond à En attente de Chrome et GetResponseStream + ReadToEnd correspond au Téléchargement de contenu .

Dans cet exemple, je fais une requête GET (sans corps). Être capable de chronométrer la requête envoyée aurait du sens, mais pas vraiment réalisable en utilisant cette approche.

3
ThomasArdal 27 nov. 2017 à 07:43

Utilisez un renifleur de paquets tel que Wire Shark, il surveillera tout le trafic HTTP et mettra des horodatages sur chaque paquet envoyé / reçu

0
DAmbrozic 29 nov. 2017 à 18:11

Je recommanderais de regarder dans Miniprofiler https://miniprofiler.com/ et Glimpse http://getglimpse.com/

Glimpse est bon à configurer en premier, il vous montrera beaucoup d'informations sur la requête http que vous avez faite juste à la sortie de la boîte, mais vous pouvez configurer le mini profiler pour découvrir les requêtes SQL lentes, etc. Vous devez écrire un peu de code pour demandez-lui de vous donner les détails, mais c'est très bon pour vous montrer où vous avez des goulots d'étranglement, et il est possible de l'intégrer à Glimpse afin que vous puissiez voir toutes les informations au même endroit.

0
Chris Warnes 23 nov. 2017 à 09:40

Eh bien, je ne sais pas si cela aidera, mais fouillez dans le source de référence Je vois des références à GlobalLog et Logging. Vous pourriez peut-être créer votre propre écouteur de trace pour capturer les informations dont vous avez besoin. Ce message et cette réponse peut vous être utile car il montre comment configurer un écouteur de trace.

1
csm8118 27 nov. 2017 à 01:47
47326686