Que signifie l’heure dans le calendrier de Google Chrome dans le panneau réseau?

Souvent, lors du dépannage des performances à l’aide du panneau réseau de Google Chrome, je vois des heures différentes et je me demande souvent ce qu’elles signifient.

Quelqu’un peut-il valider que je les comprends correctement:

  1. Blocage: Temps bloqué par plusieurs requêtes du navigateur pour la même limite de domaine (???)
  2. Waiting: En attente d’une connexion du serveur (???)
  3. Envoi: Temps passé pour transférer le fichier du serveur vers le navigateur (???)
  4. Réception: Temps passé par le navigateur pour parsingr et décoder le fichier (???)
  5. Recherche DNS: Temps passé à résoudre le nom d’hôte.
  6. Connecting: Temps passé à établir une connexion socket.

Maintenant, comment quelqu’un réparerait-il de longs temps de blocage?

Maintenant, comment quelqu’un pourrait-il réparer de longs délais?

L’envoi est le temps passé à télécharger les données / requêtes sur le serveur. Cela se produit entre le blocage et l’attente. Par exemple, si je publie une page ASPX, cela indique le temps nécessaire au téléchargement de la demande (y compris les valeurs des formulaires et l’état de la session) vers le serveur ASP.

L’attente est l’heure après l’envoi de la demande, mais avant qu’une réponse du serveur n’ait été reçue. Fondamentalement, c’est le temps passé à attendre une réponse du serveur.

La réception est le temps passé à télécharger la réponse du serveur.

Le blocage est la durée entre le thread d’interface utilisateur qui lance la requête et la requête HTTP GET qui passe sur le fil.

L’ordre dans lequel ils se produisent est:

  1. Blocage*
  2. Recherche DNS
  3. De liaison
  4. Envoi
  5. Attendre
  6. Recevoir

* Le blocage et la recherche DNS peuvent être échangés.

L’onglet réseau n’indique pas le temps passé à traiter.

Si vous avez de longs délais de blocage, la machine qui exécute le navigateur fonctionne lentement. Vous pouvez résoudre ce problème en mettant à niveau la machine (plus de RAM, processeur plus rapide, etc.) ou en réduisant sa charge de travail (désactivez les services dont vous n’avez pas besoin, fermez les programmes, etc.).

Des temps d’attente longs indiquent que votre serveur prend beaucoup de temps pour répondre aux demandes. Cela signifie soit:

  • La demande prend beaucoup de temps à traiter (comme si vous extrayez une grande quantité de données de la firebase database, vous devez sortinger de grandes quantités de données ou trouver un fichier sur un disque dur qui doit être mis en place).
  • Votre serveur reçoit trop de demandes pour traiter toutes les demandes dans un délai raisonnable (cela peut prendre 0,02 seconde pour traiter une demande, mais lorsque vous avez 1 000 demandes, il y aura un délai notable).

Les deux problèmes (longue attente + long blocage) sont liés. Si vous pouvez réduire la charge de travail sur le serveur en mettant en cache, en ajoutant un nouveau serveur et en réduisant le travail requirejs pour les pages actives, vous devriez voir des améliorations dans les deux domaines.

Vous pouvez lire une explication officielle détaillée de Google Team ici. C’est une ressource très utile et vos informations vont dans la section Affichage de la timeline .

La synchronisation du réseau de ressources affiche les mêmes informations que dans la barre de ressources de la vue chronologique. Répondre à votre question:

  • Recherche DNS : Temps passé à effectuer la recherche DNS. (vous devez trouver l’adresse IP de site.com et cela prend du temps)
  • Blocage : chronomètre la requête passée en attente d’une connexion déjà établie pour qu’elle soit réutilisable. Comme cela a été dit dans une autre réponse, cela ne dépend pas de votre serveur – c’est le problème du client.
  • Connecting : temps nécessaire pour établir une connexion, y compris les sockets de contact TCP / tentatives, la recherche DNS et la connexion à un proxy ou la négociation d’une couche de socket sécurisé (SSL). Dépend de la congestion du réseau.
  • Envoi – Temps passé à envoyer la demande. Dépend de la taille des données envoyées (qui est généralement petite car votre demande est presque toujours de quelques octets sauf si vous soumettez une grande image ou une quantité énorme de texte), congestion du réseau, proximité du client par rapport au serveur
  • Waiting – Temps passé à attendre la réponse initiale. C’est principalement l’heure de votre serveur pour traiter et répondre à votre réponse. C’est à quelle vitesse votre serveur calcule les choses, récupère les enregistrements de la firebase database, etc.
  • Réception – Temps passé à recevoir les données de réponse. Quelque chose de similaire à l’envoi, mais vous obtenez maintenant vos données du serveur (la taille de la réponse est généralement supérieure à la demande). Cela dépend donc aussi de la taille, de la qualité de la connexion, etc.

Blocage : chronomètre la requête passée en attente d’une connexion déjà établie pour qu’elle soit réutilisable. Comme cela a été dit dans une autre réponse, cela ne dépend pas de votre serveur – c’est le problème du client .

Je ne suis pas d’accord avec la déclaration ci-dessus. Toutes les autres choses étant identiques [charge de travail de ma machine] – mon navigateur affiche un temps de “blocage” beaucoup plus court pour un site Web et un temps de blocage long pour un autre site Web.

Donc, si l’attente de l’un des six threads + négociation de proxy ** est élevée, c’est principalement en raison de l’effet en cascade de la lenteur du serveur OU de la mauvaise conception de la page [trop envoyé sur le réseau, trop de fois].

** – quelle que soit la “négociation par procuration”, personne ne l’explique très bien, surtout si aucun proxy local / CDN n’est impliqué