Affichage Threads (niveau de performance parallèle)

Il s'agit de la vue la plus détaillée et la plus riche en fonctionnalités du visualiseur concurrentiel. À l'aide de cette vue, vous pouvez déterminer si les threads s'exécutent ou se bloquent pour des raisons de synchronisation, d'E/S ou autres.

Pendant l'analyse de profil, le visualiseur concurrentiel examine tous les événements liés aux changements de contexte du système d'exploitation pour chaque thread d'application. Les changements de contexte peuvent se produire pour de nombreuses raisons, notamment les suivantes :

  • Un thread est bloqué sur une primitive de synchronisation.

  • Le quantum d'un thread expire.

  • Un thread émet une requête d'E/S bloquante.

La vue Threads assigne une catégorie à chaque changement de contexte lorsqu'un thread a cessé de s'exécuter. Les catégories sont indiquées dans la légende située dans la zone inférieure gauche et sont expliquées par le biais de leurs rubriques d'aide correspondantes. La catégorisation d'événements liés aux changements de contexte s'accomplit en recherchant des API bloquantes connues dans la pile des appels du thread. Au cas où nous ne trouverions pas de correspondance dans la pile des appels, nous utilisons la raison de l'attente fournie par Windows. Bien que techniquement correcte, la catégorie Windows peut se baser sur un détail d'implémentation et non sur les attentes ou l'intention de l'utilisateur. Par exemple, Windows signalera un blocage sur un verrou SRW (Slim Reader/Writer) natif en tant qu'E/S plutôt que synchronisation. Toutefois, le cas échéant, vous devez être en mesure d'identifier la cause première de tout événement de blocage en examinant les piles des appels qui correspondent aux événements liés aux changements de contexte.

La vue Threads affiche également les dépendances entre les threads. Par exemple, si vous identifiez un thread bloqué sur un objet de synchronisation, l'outil peut souvent vous indiquer le thread qui l'a débloqué, ainsi que l'activité de ce thread au même moment, via l'affichage de sa pile des appels lorsqu'il a débloqué le thread concerné.

Enfin, lorsque les threads s'exécutent, l'outil collecte des exemples afin que vous puissiez analyser le code qui est exécuté par un ou plusieurs threads pendant un segment d'exécution. En plus de fournir une visibilité de l'exécution des threads basée sur des exemples, cette vue fournit également des rapports de profilage de l'exécution de l'arborescence de la pile des appels et des rapports de blocage.

Utilisation

La vue Threads répond à plusieurs objectifs. Voici quelques utilisations classiques de cette situation :

  • identification des raisons pour lesquelles l'interface utilisateur d'une application ne répond pas pendant certaines phases d'exécution ;

  • identification de la durée du blocage sur la synchronisation, les E/S, les défauts de page, etc. ;

  • identification du degré d'interférence avec les autres processus qui s'exécutent sur le système ;

  • identification des problèmes d'équilibrage de charge pour l'exécution en parallèle ;

  • identification des raisons de la faiblesse ou d'un manque total d'évolutivité (par exemple, la raison pour laquelle les performances d'une application parallèle ne s'améliorent pas lorsque des cœurs plus logiques sont disponibles dans le système) ;

  • compréhension du degré d'accès concurrentiel dans l'application pour aider la parallélisation ;

  • compréhension des dépendances entre les threads de travail et les chemins critiques d'exécution.

Le reste de cette section décrit un modèle d'utilisation recommandé pour rendre votre expérience plus productive dans cette vue. Nous recommandons d'abord d'utiliser la Affichage Utilisation de l'UC pour concentrer votre attention sur une phase spécifique d'exécution de processus présentant un intérêt. Tirer parti des Support des marqueurs de scénarios dans votre application peut considérablement aider dans ce processus. Une fois que vous avez effectué un zoom avant sur une fenêtre de durée d'exécution présentant un intérêt, vous pouvez sélectionner la vue Threads.

Identification et limitation d'une zone d'intérêt

Dans la vue Threads, une chronologie s'affiche avec l'heure sur l'axe des abscisses (x). Sur l'axe des ordonnées (y), vous voyez deux canaux E/S, un pour les lectures et l'autre pour les écritures, pour chaque unité de disque physique dans le système qui affichait de l'activité pendant la collecte de profils. Au-dessous des canaux du disque, vous verrez un canal pour chaque thread dans le processus. Initialement, les threads sont triés par ordre de création, le thread d'application principale étant le premier. Vous pouvez utiliser l'option de tri dans le coin supérieur gauche de la vue pour trier des threads selon un autre critère, par exemple selon les threads qui accomplissent la plupart du travail d'exécution.

Ensuite, vous pouvez masquer les threads qui n'exécutent aucun travail dans le scénario concerné en sélectionnant leur nom dans la colonne de gauche et en cliquant sur l'icône Masquer les threads sélectionnés dans la barre d'outils. Les threads de ce type peuvent exister pour de nombreuses raisons. Par exemple, il peut s'agir de threads du pool de threads inactif. De tels threads sont habituellement complètement bloqués (en général pour des raisons de synchronisation). Vous devez les supprimer de la vue parce que leurs statistiques peuvent contaminer les rapports avec des informations inopportunes.

Vous pouvez utiliser le rapport de l'onglet Répartition de l'exécution pour identifier d'autres threads qui peuvent être masqués. Pour consulter le graphique Répartition de l'exécution, cliquez sur Synthèse par thread dans la légende active. Ce graphique affiche la répartition des états des threads dans l'application pendant la fenêtre de temps actuellement visible. Pour prendre en charge l'évolutivité dans ce graphique, nous limitons le nombre de threads affiché, donc dans certains cas ce graphique n'affiche pas les données de tous les threads dans l'application. Le cas échéant, il présente des points de suspension à l'extrême droite.

Maintenant que vous avez limité votre analyse à une région présentant un intérêt et que vous avez sélectionné les bons threads, vous pouvez commencer à exécuter votre analyse des performances. Les sections suivantes décrivent les différents outils à votre disposition.

Détails de blocage d'un thread

Pour comprendre les raisons sous-jacentes de thread qui bloque des régions, vous pouvez pointer ou sélectionner (en cliquant sur le bouton gauche de la souris) l'une de ces régions. Lorsque vous pointez sur une région de blocage, nous affichons une info-bulle avec des informations générales sur l'événement de blocage telles que la catégorie, une API de blocage le cas échéant, l'heure de début de la région et la durée du blocage. Pour la catégorie de préemption, nous affichons également l'ID de processus et l'ID de thread dans le processus qui a été planifié sur l'UC lorsque votre thread a été arrêté par le noyau. Vous pouvez également sélectionner une région de blocage dans un canal d'intérêt, qui provoque l'affichage de la pile actuelle dans la fenêtre inférieure. En plus du contenu de l'info-bulle, l'onglet Pile active indique la pile des appels qui a provoqué le blocage de votre thread. En examinant la pile des appels, vous pouvez déterminer la raison sous-jacente de l'événement de blocage de thread. Par défaut, nous affichons les piles des appels complètes dans cette vue, notamment les piles de l'utilisateur et du noyau. Lorsque l'outil est en mesure d'identifier une API spécifique, la pile des appels est tronquée au-dessus de ce frame. Si l'outil ne parvient pas à déterminer l'appel de fonction racine qui est à l'origine du blocage, la pile des appels entière est exposée afin que l'utilisateur puisse l'examiner afin de le déterminer.

Il est souvent vrai qu'un chemin d'exécution entraîne plusieurs événements de blocage. Il est souvent souhaitable de comprendre les délais de blocage cumulatifs organisés par les piles des appels. Dans ce but, nous fournissons un rapport des profils basés sur une arborescence des appels pour chaque catégorie de blocage. Vous pouvez consulter le profil en sélectionnant l'une des entrées de la légende de la catégorie de blocage sur la gauche. Ces rapports vous permettent de choisir rapidement comment consacrer du temps au réglage des performances de votre application.

Dépendances entre les threads

Le visualiseur concurrentiel vous indique les dépendances entre les threads de blocage au sein de votre processus. Pour déterminer quelles actions du thread ont débloqué un thread d'intérêt, cliquez sur le segment de blocage approprié. Si l'outil peut déterminer le thread de déblocage, il trace une ligne pour connecter à l'autre thread le segment d'exécution qui suit votre segment de blocage. Cette ligne indique comment un thread différent a débloqué le thread sélectionné. De plus, l'onglet Pile de déblocage est renseigné à l'aide de la pile des appels appropriée. Ainsi, vous pouvez identifier rapidement un thread bloqué, découvrir ce qu'il essayait de faire et voir ce qui lui a enfin permis de s'exécuter.

Détails de l'exécution du thread

Il est souvent utile de déterminer quel code est exécuté par les threads lorsque votre application est en cours d'exécution. Ces régions s'affichent sous forme de segments verts dans le graphique de chronologie. Pour ce faire, vous pouvez avoir recours à deux fonctionnalités.

En premier lieu, lorsque vous cliquez sur un segment d'exécution dans la chronologie, nous essayons de rechercher la pile des appels de l'exemple de profil la plus proche. En cas de réussite, nous affichons un signe d'insertion noir au-dessus de l'emplacement dans le bloc d'exécution où l'exemple a été pris et affichons la pile des appels sous l'onglet Pile active. Vous pouvez sélectionner d'autres exemples en cliquant n'importe où dans les segments d'exécution. Dans certaines situations, nous pouvons ne pas trouver d'exemple. Cette incapacité est habituellement due à la période de 1 ms pendant laquelle nous collectons des exemples de profils. Par exemple, lorsqu'un segment d'exécution est inférieur à une milliseconde, il est possible qu'aucune pile des appels ne soit collectée. Il n'est pas possible de modifier la fréquence d'échantillonnage, mais une milliseconde constitue un bon compromis entre précision et charge d'exécution.

En second lieu, le rapport du profil d'échantillonnage d'exécution et sa vue de l'arborescence des appels est une fonctionnalité importante qui peut vous aider à comprendre à quoi est consacrée la durée d'exécution. Pour accéder à cette fonctionnalité, cliquez sur l'élément Exécution dans la légende active. Le profil d'exécution fournit un exemple de rapport pour tous les threads activés (non masqués) dans la vue actuelle filtrée par plage horaire dans la fenêtre.

Graphique de chronologie

Le graphique de chronologie présente l'activité de tous les threads dans le processus et de toutes les unités de disque physiques sur l'ordinateur hôte. Vous pouvez effectuer un zoom sur la chronologie en faisant glisser le pointeur de la souris, ou en utilisant le curseur de zoom dans la barre d'outils de la fenêtre, ou en maintenant la touche CTRL enfoncée tout en tournant la roulette de la souris. Pointez sur une des barres horizontales, ou sur un des segments, pour consulter la catégorie, l'heure de début et la durée de ce point sur le thread. Cliquez sur l'un des segments pour consulter la pile des appels dans la partie inférieure de l'écran sous l'onglet Pile active.

Dans le graphique de chronologie, la couleur indique l'état d'un thread à un moment donné. Par exemple, les segments verts sont en cours d'exécution, les segments rouges sont bloqués à des fins de synchronisation, les segments jaunes ont été anticipés et les segments violets prennent part aux E/S du périphérique. Cette vue s'avère utile pour l'examen de l'équilibre du travail pour un groupe de threads impliqué dans une boucle parallèle ou des tâches simultanées. Si un ou plusieurs threads met beaucoup plus de temps que les autres à s'accomplir, cela peut indiquer une charge de travail déséquilibrée et la possibilité d'améliorer la performance de votre programme en distribuant plus équitablement le travail parmi les threads.

Vous pouvez également utiliser le graphique de chronologie pour examiner les dépendances entre les threads et les relations temporelles qui existent entre les threads de blocage et bloqués. Vous pouvez voir combien de threads s'exécutent à tout moment en regardant la coupe verticale à ce stade sur la chronologie. Si un seul thread est vert (en cours d'exécution) à cet instant-là, l'application ne tire pas complètement parti de l'accès concurrentiel disponible sur le système. Depuis la barre d'outils, vous pouvez cliquer sur les boutons haut et bas afin de trier et déplacer des threads individuels ou masquer des threads sans intérêt à l'aide du bouton Masquer les threads.

Rapports de profil

Une fenêtre à onglets avec plusieurs rapports et une légende active se situent sous le graphique de chronologie. Les rapports des profils se mettent à jour automatiquement dans la vue Threads lorsque vous effectuez un zoom, faites défiler, masquez ou affichez des threads. Pour les suivis plus importants, la fenêtre des rapports devient grisée pendant le calcul des rapports mis à jour. Pour chaque rapport, il existe deux réglages de filtre : Réduction du bruit et Uniquement mon code. La réduction du bruit permet d'éliminer les entrées inintéressantes de l'arborescence des appels pour lesquelles le temps passé est très faible. La valeur par défaut s'élève à 2 %, mais peut être comprise entre 0 et 99 %. La case à cocher Uniquement mon code vous permet d'éliminer ou d'afficher les entrées de l'arborescence des appels autres que votre propre code. Les rapports disponibles sont détaillés dans la section suivante.

Rapport des profils

Le rapport Profil actuel est accessible via cet onglet. Le fait de cliquer sur une entrée dans la légende active permet de déterminer le rapport des profils à afficher. Les rapports des profils disponibles sont répertoriés dans la section ci-après, à commencer par Exécution.

Pile active

Cet onglet affiche les piles des appels pour un segment de thread sélectionné dans le graphique de détails. Les piles des appels sont tronquées pour insister sur l'activité directement liée à votre programme. Dans la fenêtre de sélection, les informations de thread En cours d'exécution sont immédiatement visibles.

Pile de déblocage

Cliquez sur Pile de déblocage pour voir quel thread a débloqué celui-ci et à quelle ligne de code.

Exécution

Le rapport de profil d'exécution affiche un tableau détaillé avec le pourcentage de temps que chaque thread a consacré aux différents états tels que l'exécution, les E/S, la gestion de la mémoire, et ainsi de suite.

Cliquez sur le contrôle d'arborescence en regard de toute entrée de l'arborescence des appels présentant un intérêt pour explorer et rechercher la ligne de code correspondant au temps consacré à l'exécution. Une fois qu'une entrée de l'arborescence des appels présentant un intérêt a été identifiée, cliquez avec le bouton droit sur cette entrée pour afficher un menu contextuel qui indique Afficher la source et Afficher les sites d'appel. Cliquer sur Afficher la source permet de naviguer jusqu'à la ligne source, et cliquer sur Afficher les sites d'appel permet de diriger la navigation vers la ligne de code ayant appelé celle-ci. Si un seul site d'appel existe, le clic navigue jusqu'à la ligne de code mise en surbrillance pour le site d'appel. S'il existe plusieurs sites d'appel, une boîte de dialogue est présentée, dans laquelle une seule entrée peut être sélectionnée. Cliquez sur le bouton Atteindre la source pour naviguer jusqu'au site d'appel mis en surbrillance. Il s'avère souvent très utile de sélectionner et d'atteindre la source du site d'appel comportant le plus d'instances et/ou le plus de temps. Pour plus d'informations, consultez Profil d'exécution (rapport).

Synchronisation

Le rapport Synchronisation affiche les appels responsables des blocs de synchronisation, ainsi que les temps de blocage d'agrégation de chaque pile des appels. Vous pouvez utiliser ces informations pour identifier et étudier les zones posant problème.

Cliquez sur le contrôle d'arborescence en regard de toute entrée de l'arborescence des appels présentant un intérêt pour explorer et rechercher la ligne de code correspondant au temps consacré à la synchronisation. Une fois qu'une entrée de l'arborescence des appels présentant un intérêt a été identifiée, cliquez avec le bouton droit sur cette entrée pour afficher un menu contextuel qui indique Afficher la source et Afficher les sites d'appel. Cliquer sur Afficher la source permet de naviguer jusqu'à la ligne source, et cliquer sur Afficher les sites d'appel permet de diriger la navigation vers la ligne de code ayant appelé celle-ci. Si un seul site d'appel existe, le clic navigue jusqu'à la ligne de code mise en surbrillance pour le site d'appel. S'il existe plusieurs sites d'appel, une boîte de dialogue est présentée, dans laquelle une seule entrée peut être sélectionnée. Cliquer sur le bouton Atteindre la source permet de naviguer jusqu'au site d'appel mis en surbrillance. Il s'avère souvent très utile de sélectionner et d'atteindre la source du site d'appel comportant le plus d'instances et/ou le plus de temps. Pour plus d'informations, consultez Durée de synchronisation.

E/S

Le rapport d'E/S affiche les appels responsables des blocs d'E/S, ainsi que les temps de blocage d'agrégation de chaque pile des appels. Vous pouvez utiliser ces informations pour identifier et étudier les zones posant problème.

Cliquez sur le contrôle d'arborescence en regard de toute pile des appels présentant un intérêt pour explorer et rechercher la ligne de code correspondant au temps consacré aux E/S. Une fois qu'une entrée de l'arborescence des appels présentant un intérêt a été identifiée, cliquez avec le bouton droit sur cette entrée pour afficher un menu contextuel qui indique Afficher la source et Afficher les sites d'appel. Cliquer sur Afficher la source permet de naviguer jusqu'à la ligne source, et cliquer sur Afficher les sites d'appel permet de diriger la navigation vers la ligne de code ayant appelé celle-ci. Si un seul site d'appel existe, le clic navigue jusqu'à la ligne de code mise en surbrillance pour le site d'appel. S'il existe plusieurs sites d'appel, une boîte de dialogue est présentée, dans laquelle une seule entrée peut être sélectionnée. Cliquez sur le bouton Atteindre la source pour naviguer jusqu'au site d'appel mis en surbrillance. Il s'avère souvent très utile de sélectionner et d'atteindre la source du site d'appel comportant le plus d'instances et/ou le plus de temps. Pour plus d'informations, consultez Temps d'E/S (vue Threads).

Sleep

Le rapport Veille affiche les appels responsables des blocs de veille, ainsi que les temps de blocage d'agrégation de chaque pile des appels. Vous pouvez utiliser ces informations pour identifier et étudier les zones posant problème.

Cliquez sur le contrôle d'arborescence en regard de toute pile des appels présentant un intérêt pour explorer et rechercher la ligne de code correspondant au temps consacré à la veille. Une fois qu'une entrée de l'arborescence des appels présentant un intérêt a été identifiée, cliquez avec le bouton droit sur cette entrée pour afficher un menu contextuel qui indique Afficher la source et Afficher les sites d'appel. Cliquer sur Afficher la source permet de naviguer jusqu'à la ligne source, et cliquer sur Afficher les sites d'appel permet de diriger la navigation vers la ligne de code ayant appelé celle-ci. Si un seul site d'appel existe, le clic navigue jusqu'à la ligne de code mise en surbrillance pour le site d'appel. S'il existe plusieurs sites d'appel, une boîte de dialogue est présentée, dans laquelle une seule entrée peut être sélectionnée. Cliquer sur le bouton Atteindre la source permet de naviguer jusqu'au site d'appel mis en surbrillance. Il s'avère souvent très utile de sélectionner et d'atteindre la source du site d'appel comportant le plus d'instances et/ou le plus de temps. Pour plus d'informations, consultez Durée de veille.

Pagination

Le rapport Pagination affiche les appels où se sont produits des blocs de préemption, ainsi que les temps de blocage d'agrégation de chaque pile des appels. Vous pouvez utiliser ces informations pour identifier et étudier les zones posant problème. Ce rapport de blocage est moins exploitable que les autres parce que la préemption est généralement imposée à votre processus par le système d'exploitation plutôt que provoquée par votre code. Il présente les genres de préemptions qui ont eu lieu, l'emplacement auquel elles ont eu lieu et la durée pendant laquelle votre processus est resté dans un état de préemption donné.

Cliquez sur le contrôle d'arborescence en regard de toute entrée de l'arborescence des appels présentant un intérêt pour explorer et rechercher la ligne de code correspondant au temps consacré à la préemption. Une fois qu'une entrée de l'arborescence des appels présentant un intérêt a été identifiée, cliquez avec le bouton droit sur cette entrée pour afficher un menu contextuel qui indique Afficher la source et Afficher les sites d'appel. Cliquer sur Afficher la source permet de naviguer jusqu'à la ligne source et cliquer sur Afficher les sites d'appel permet de diriger la navigation vers la ligne de code ayant appelé celle-ci. Si un seul site d'appel existe, le clic navigue directement jusqu'à la ligne de code mise en surbrillance pour le site d'appel. S'il existe plusieurs sites d'appel, une boîte de dialogue est présentée, dans laquelle une seule entrée peut être sélectionnée. Cliquer sur le bouton Atteindre la source permet de naviguer jusqu'au site d'appel mis en surbrillance. Il s'avère souvent très utile de sélectionner et d'atteindre la source du site d'appel comportant le plus d'instances et/ou le plus de temps. Pour plus d'informations, consultez Période de gestion de la mémoire.

Préemption

Le rapport Pagination affiche les appels où se sont produits des blocs de préemption, ainsi que les temps de blocage d'agrégation de chaque pile des appels. Vous pouvez utiliser ces informations pour identifier et étudier les zones posant problème. Ce rapport de blocage est moins exploitable que les autres parce que la préemption est généralement imposée à votre processus par le système d'exploitation plutôt que provoquée par votre code. Il présente les genres de préemptions qui ont eu lieu, l'emplacement auquel elles ont eu lieu et la durée pendant laquelle votre processus est resté dans un état de préemption donné.

Cliquez sur le contrôle d'arborescence en regard de toute pile des appels présentant un intérêt pour explorer et rechercher la ligne de code correspondant au temps consacré à la préemption. Une fois qu'une entrée de l'arborescence des appels présentant un intérêt a été identifiée, cliquez avec le bouton droit sur cette entrée pour afficher un menu contextuel qui indique Afficher la source et Afficher les sites d'appel. Cliquer sur Afficher la source permet de naviguer jusqu'à la ligne source et cliquer sur Afficher les sites d'appel permet de diriger la navigation vers la ligne de code ayant appelé celle-ci. Si un seul site d'appel existe, le clic navigue directement jusqu'à la ligne de code mise en surbrillance pour le site d'appel. S'il existe plusieurs sites d'appel, une boîte de dialogue est présentée, dans laquelle une seule entrée peut être sélectionnée. Cliquer sur le bouton Atteindre la source permet de naviguer jusqu'au site d'appel mis en surbrillance. Il s'avère souvent très utile de sélectionner et d'atteindre la source du site d'appel comportant le plus d'instances et/ou le plus de temps. Pour plus d'informations, consultez Durée de préemption.

Traitement IU

Le rapport Traitement IU affiche les appels responsables des blocs de traitement IU, ainsi que les temps de blocage d'agrégation de chaque pile des appels. Vous pouvez utiliser ces informations pour identifier et étudier les zones posant problème.

Cliquez sur le contrôle d'arborescence en regard de toute entrée de l'arborescence des appels présentant un intérêt pour explorer et rechercher la ligne de code correspondant au temps consacré au traitement IU. Une fois qu'une entrée de l'arborescence des appels présentant un intérêt a été identifiée, cliquez avec le bouton droit sur cette entrée pour afficher un menu contextuel qui indique Afficher la source et Afficher les sites d'appel. Cliquer sur Afficher la source permet de naviguer jusqu'à la ligne source, et cliquer sur Afficher les sites d'appel permet de diriger la navigation vers la ligne de code ayant appelé celle-ci. Si un seul site d'appel existe, le clic navigue jusqu'à la ligne de code mise en surbrillance pour le site d'appel. S'il existe plusieurs sites d'appel, une boîte de dialogue est présentée, dans laquelle une seule entrée peut être sélectionnée. Cliquer sur le bouton Atteindre la source permet de naviguer jusqu'au site d'appel mis en surbrillance. Il s'avère souvent très utile de sélectionner et d'atteindre la source du site d'appel comportant le plus d'instances et/ou le plus de temps. Pour plus d'informations, consultez Temps de traitement UI.

Synthèse par thread

Cet onglet affiche une vue de colonne à code de couleurs de la durée totale que chaque thread a consacré à chaque état, tel que : en cours d'exécution, bloqué et E/S. Des étiquettes s'affichent en bas des colonnes. Dans le niveau de zoom par défaut, le thread principal est la colonne située la plus à gauche. Lorsque vous ajustez le niveau de zoom dans le graphique de détails, les rapports à onglets se mettent automatiquement à jour afin de refléter la nouvelle échelle de temps. Pour prendre en charge l'évolutivité de ce graphique, nous limitons le nombre de threads affiché. Par conséquent, dans certains cas, le graphique peut ne pas afficher les données de tous les threads dans l'application. Dans ce cas, il indique cette limitation par des points de suspension à l'extrême droite. Si le thread que vous souhaitez voir dans ce graphique n'est pas présent, vous pouvez masquer les threads inintéressants jusqu'à ce que le thread désiré s'affiche dans le graphique. Pour plus d'informations, consultez Résumé par thread (rapport).

Opérations sur les fichiers

Cet onglet affiche les threads impliqués dans les E/S de disque et les fichiers qu'ils ont utilisés. Cela inclut notamment les DLL qui ont été chargées, le nombre d'octets qui ont été lus, et d'autres informations. Ce rapport peut s'avérer utile pour évaluer le temps passé à accéder aux fichiers pendant l'exécution, surtout si votre processus semble être lié aux E/S. Pour plus d'informations, consultez Opérations sur les fichiers (rapport) (affichage Threads).

Voir aussi

Concepts

Visualiseur concurrence