Exécuter les outils d'analyse à partir de la page Performances et diagnostics
Pour analyser les performances, l'utilisation de la mémoire et la consommation d'énergie des applications du Windows Store et Windows Phone, utilisez les profileurs Visual Studio et les outils de diagnostic. Le concentrateur Performances et diagnostics facilite la sélection et l'exécution de ces outils, combine plusieurs outils en une seule exécution de diagnostic et gère les rapports générés. Vous pouvez exécuter les outils sur la plupart des cibles de déploiement. Pour les applications Windows Phone, utilisez un téléphone ou un émulateur. Pour les applications du Windows Store, utilisez l'ordinateur Visual Studio, le simulateur ou un ordinateur distant. Après la collecte des données, le rapport de diagnostic présente des graphiques de chronologie et des vues détaillées des données. Les paramètres et filtres du rapport Performances et diagnostics vous permettent de vous concentrer sur les parties critiques des données.
Outils dans le concentrateur Performances et diagnostics
Le concentrateur Performances et diagnostics vous montre les outils à utiliser pour des types particuliers d'applications (XAML et C#/VB/C++ ou HTML et JavaScript) et les outils à utiliser lors d'une seule exécution de diagnostic.
Dans cet article
Démarrage rapide : collecter des données de diagnostic
Collecter des données de diagnostic
Ajouter des marques utilisateur pour identifier des emplacements dans des données de diagnostic | Définir le projet de démarrage | Définir la cible de l'analyse | Choisir les outils à exécuter dans la session de diagnostic | Démarrer et arrêter la session de diagnostic
Ouvrir un fichier de session de diagnostic
Page de données Performances et diagnostics
Résolution des problèmes
Démarrage rapide : collecter des données de diagnostic
Notes
Vous devez disposer de privilèges d'administrateur pour exécuter les outils Performances et diagnostics.Vous pouvez exécuter Visual Studio en tant qu'administrateur, ou vous pouvez choisir d'exécuter les outils en tant qu'administrateur lorsque vous démarrez la session de diagnostic.
Ouvrez le projet dans Visual Studio.
Définissez l'emplacement de déploiement.
Les applications Windows Phone peuvent être déployées sur un téléphone ou sur un des émulateurs Visual Studio.
Les applications du Windows Store peuvent être déployées sur l'ordinateur Visual Studio, sur le simulateur Visual Studio ou sur un PC ou une tablette connectés à un réseau.
Remarque : Pour exécuter une session de diagnostic sur un PC ou une tablette distants, les Outils de contrôle à distance Visual Studio doivent être installés et s'exécuter sur la cible distante. Consultez Exécuter des applications du Windows Store sur un ordinateur distant à partir de Visual Studio.
À partir de la liste d'emplacement de débogage, dans la barre d'outils du débogueur, sélectionnez l'emplacement de déploiement pour votre application. Les applications pour téléphones mobiles sont répertoriées ci-dessous :
Ouvrez une session Performances et diagnostics. Dans le menu Déboguer, sélectionnez Performances et diagnostics (raccourci clavier : Alt + F2).
Dans le concentrateur Performances et diagnostics, sélectionnez un ou plusieurs outils à exécuter dans la session. Seuls les outils applicables au type de projet et au langage de programmation s'affichent. Lorsque vous choisissez un outil de diagnostic, les sélections d'outils qui ne peuvent pas être exécutés dans la même session de diagnostic sont désactivées. Les choix que vous devez effectuer pour une application JavaScript sont les suivants :
Pour démarrer la session de diagnostic, choisissez Démarrer.
Exécutez les scénarios pour lesquels vous souhaitez collecter des données.
Durant l'exécution de la session, certains outils affichent des graphiques de données en temps réel sur la page Performances et Diagnostics.
Pour terminer la session de diagnostic, choisissez Arrêter la collecte.
Collecter des données de diagnostic
Ajouter des marques utilisateur pour identifier des emplacements dans des données de diagnostic | Définir le projet de démarrage | Définir la cible de l'analyse | Choisir les outils à exécuter dans la session de diagnostic | Démarrer et arrêter la session de diagnostic
Ajouter des marques utilisateur pour identifier des emplacements dans des données de diagnostic
Vous pouvez ajouter des marques utilisateur à vos données de profilage pour vous aider à identifier des zones dans la chronologie.
La marque apparaît sous la forme d'un triangle orange dans la chronologie lorsque la méthode est exécutée. Le message et l'heure s'affichent sous la forme d'une info-bulle lorsque vous pointez sur la marque. Si plusieurs marques utilisateur sont proches, les marques sont fusionnées et les données de l'info-bulle sont rassemblées. Vous pouvez effectuer un zoom avant sur la chronologie pour dissocier les marques.
Notes
-
Les rapports Minutage de fonction JavaScript n'affichent pas les marques utilisateur.
-
Les marques ne sont pas affichées dans les rapports si l'outil Utilisation de l'UC est le seul outil utilisé dans une session de diagnostic.
-
Consultez l'exemple du SDK Windows Exemple LoggingSession pour des exemples supplémentaires.
Ajouter des marques à un code C#, Visual Basic ou C++
Pour ajouter des marques à un code C#, Visual Basic ou C++, créez tout d'abord un objet Windows.Foundation.Diagnostics LoggingChannel. Insérez ensuite un appel aux méthodes LoggingChannel.LogMessage aux points de votre code que vous souhaitez marquer. Utilisez LoggingLevel.Information dans les appels.
Lorsque la méthode s'exécute, une marque utilisateur est ajoutée aux données de profilage, ainsi qu'un message.
Remarques
L'ajout de canaux d'enregistrement à votre code pose quelques défis :
Chaque canal d'enregistrement ouvert doit avoir un nom unique. La tentative de création d'un canal d'enregistrement avec un nom identique comme canal ouvert entraîne une exception.
L'un des moyens d'éviter des noms dupliqués dans votre code consiste à utiliser une méthode static (Shared en Visual Basic) pour retourner un LoggingChannel dont le nom est assuré d'être unique. Voici un exemple d'utilisation de Guid pour garantir l'unicité :
//using Windows.Foundation.Diagnostics
public static LoggingChannel GetLoggingChannel()
{
var name = Guid.NewGuid().ToString();
return new LoggingChannel(name);
}
'Imports Windows.Foundation.Diagnostics
Public Shared Function GetLoggingChannel() As LoggingChannel
Dim Name = Guid.NewGuid().ToString()
GetLoggingChannel = New LoggingChannel(Name)
End Function
//using namespace Windows::Foundation::Diagnostics;
static LoggingChannel^ MainPage::GetLoggingChannel()
{
auto name = (ref new Guid())->ToString();
auto channel = ref new LoggingChannel(name);
return channel;
}
C# et VB : les objets LoggingChannel doivent être supprimés
Dans la mesure où les objets LoggingChannel utilisent des ressources système, les projections C# et VB de LoggingChannel dérivent de l'interface System.IDisposable pour vous permettre de libérer les ressources avant la destruction de l'objet par le récupérateur de mémoire (« garbage collector ») du Common Language Runtime. Dans du code C++, l'objet LoggingChannel est détruit et les ressources sont libérées dès que l'objet est hors de portée. Voici des exemples de modèles qui vous permettent d'ajouter des marques utilisateur à un fichier de session de diagnostic :
void MyScenario()
{
var logLevel = LoggingLevel.Information;
using(var channel = Utils.GetLoggingChannel())
{
channel.LogMessage("MyScenario Start", logLevel);
// scenario code
channel.LogMessage("MyScenario End", logLevel);
}
}
Sub MyScenario()
Dim logLevel = LoggingLevel.Information
Using channel As LoggingChannel = Utils.GetLoggingChannel()
channel.LogMessage("MyScenario Start", logLevel)
'scenario code
channel.LogMessage("MyScenario End", logLevel)
End Using
End Sub
// m_channel resources are released when containing
// object goes out of scope
LoggingChannel^ m_channel = MainPage::GetLoggingChannel();
LoggingLevel m_logLevel = LoggingLevel::Information;
void MyScenario()
{
m_channel->LogMessage(L"MyScenario Start", m_logLevel);
//scenario code
m_channel->LogMessage(L"MyScenario Start", m_logLevel);
}
Ajouter des marques au code JavaScript
Pour ajouter des marques utilisateur, ajoutez le code suivant aux points de votre code que vous souhaitez marquer :
if (performance && performance.mark) {
performance.mark(markDescription);
}
markDescription est une chaîne contenant le message à afficher dans l'info-bulle de l'utilisateur.
Définir le projet de démarrage
Si votre solution contient plusieurs projets d'application, assurez-vous que celui que vous souhaitez analyser est défini comme le projet de démarrage. Dans l'Explorateur de solutions, sélectionnez le projet et choisissez Définir comme projet de démarrage à partir du menu contextuel.
Définir l'emplacement de déploiement
Vous pouvez exécuter des sessions de diagnostic sur des applications pour téléphones mobiles sur un téléphone Windows directement connecté l'ordinateur Visual Studio ou dans un émulateur de téléphone Visual Studio. Vous pouvez exécuter des applications du Windows Store sur un ordinateur Visual Studio, dans le simulateur de périphérique Visual Studio ou sur un périphérique distant connecté à Visual Studio sur un réseau ou directement à l'ordinateur Visual Studio à l'aide d'un câble USB à Ethernet. Vous pouvez définir la cible de déploiement sur la page Débogage des propriétés du projet, ou vous pouvez choisir la cible à partir de la liste d'emplacements de débogage dans la barre d'outils de Visual Studio. Les déploiements pour les applications du Windows Store sont répertoriés ci-dessous :
Le choix effectué sur la barre d'outils d'emplacement de débogage est enregistré dans les propriétés du projet.
|
Définir la cible de l'analyse
Vous pouvez non seulement démarrer votre application à partir du projet Visual Studio, mais également exécuter des sessions de diagnostic sur d'autres cibles. Par exemple, vous souhaitez peut-être diagnostiquer des problèmes de performances dans une version de votre application installée à partir du Windows Store.
Vous pouvez démarrer des applications du Windows Store déjà installées sur un périphérique, ou vous pouvez attacher les outils de diagnostic à une application Windows Store qui s'exécute déjà. Lorsque vous choisissez Application en cours d'exécution ou Application installée, sélectionnez, dans une liste, l'application qui identifie les applications sur une cible de déploiement spécifique. |
|
Lorsque vous choisissez Internet Explorer, spécifiez l'URL et changez la cible de déploiement du téléphone. |
Choisir les outils à exécuter dans la session de diagnostic
Dans le concentrateur Performances et diagnostics, sélectionnez un ou plusieurs outils à exécuter dans la session de diagnostic. Seuls les outils applicables au type et à la programmation du projet s'affichent. Lorsque vous choisissez un outil de diagnostic, les sélections d'outils qui ne peuvent pas être exécutés dans la même session de diagnostic sont désactivées. Les choix que vous devez effectuer pour une application JavaScript sont les suivants :
Démarrer et arrêter la session de diagnostic
Pour démarrer la session de diagnostic, choisissez Démarrer.
Pour arrêter la session de diagnostic et commencer l'analyse des données, choisissez Arrêter la collecte en bas de la page.
Ouvrir un fichier de session de diagnostic
Lorsque vous arrêtez la collecte de données dans une session de diagnostic, les données sont analysées immédiatement et affichées dans un rapport Performances et diagnostics.
Dans le concentrateur Performances et diagnostics, vous pouvez également ouvrir les fichiers de session de diagnostic enregistrés à partir de la liste ouverte récemment.
Sélectionnez le bouton Masquer ou Afficher en haut du concentrateur Performances et diagnostic pour développer ou réduire la liste des fichiers récemment utilisés.
Le rapport Performances et diagnostics
La chronologie indique la durée de la session de profilage, les événements d'activation du cycle de vie de l'application et les marques utilisateur. |
|
Vous pouvez limiter le rapport à une partie de la chronologie en faisant glisser les barres bleues pour sélectionner une zone de la chronologie. |
|
Un outil affiche un ou plusieurs graphiques principaux. Si la session de diagnostic a été créée avec plusieurs outils, tous les graphiques principaux sont affichés. |
|
Vous pouvez réduire et développer les graphiques individuels. |
|
Lorsque vos données sont composées d'informations de plusieurs outils, les détails par outil sont collectés sous des onglets. |
|
Pour un outil, il peut y avoir une ou plusieurs vues détaillées. La vue est filtrée par la zone sélectionnée de la chronologie. |
Résolution des problèmes
Événements de diagnostic supprimés.Certaines informations du rapport peuvent être manquantes ou imprécises
Le collecteur de données des outils de performances et de diagnostics peut consommer beaucoup de mémoire et d'UC. Quand le collecteur de données ne peut pas enregistrer dans le journal tous les événements de diagnostic, il affiche un message dans la barre d'informations au haut de la page Performances et diagnostics. Certaines données du rapport peuvent être manquantes ou non valides.
Pour résoudre ce problème, essayez les étapes suivantes pour libérer des ressources sur l'ordinateur, puis réexécutez la session de diagnostic :
Fermez toutes les applications qui ne sont pas concernées par la session de diagnostic.
Simplifiez votre scénario afin de collecter moins de données.
Utiliser moins d'outils de diagnostic dans une seule session.