Partager via


Utilisation de profils Xperf

Cette section montre comment capturer des traces à l’aide de profils. Si vous analysez la mémoire, envisagez d’écrire votre trace dans un fichier, car ETW écrit via et ne perturbe pas le cache. Si vous analysez les E/S de disque, envisagez d’enregistrer votre trace dans une mémoire tampon circulaire. Il existe également d’autres considérations, telles que si vous devez capturer une longue trace, qui ne tient pas dans une mémoire tampon, ou si vous vous souciez uniquement des 5 à 10 dernières secondes du contenu de la trace.

Procédure

  1. Sélectionnez un profil tel que perf! FileIOProfiles.InBuffer et utilisez une commande similaire à l’exemple suivant pour afficher des informations à son sujet.

    xperf -profiles perf!FileIOProfiles.InBuffer
    

    Cette commande répertorie tous les profils, suivis des sessions et des fournisseurs de ce profil :

    Profil : FileIOProfiles.InBuffer

    Sessions : FileIOProfiles.InBuffer.Sessions

    Session : FileIOProfiles.InBuffer.Sessions[0]. Noyau[0]

    Session : FileIOProfiles.InBuffer.Sessions[0]. Utilisateur[0]

    Fournisseurs : FileIOProfiles.InBuffer.Providers

    Fournisseur : FileIOProfiles.InBuffer.Providers[0]. Noyau[0]

    Fournisseur : FileIOProfiles.InBuffer.Providers[0]. Utilisateur[0]

  2. En supposant que vous avez choisi d’utiliser un suivi basé sur un fichier, démarrez un profil de trace InSequentialFile à l’aide de la commande suivante.

    xperf -start perf!GeneralProfiles.InSequentialFile
    

    Si un problème se produit, une erreur est signalée. Par exemple, le démarrage du même profil deux fois entraînerait une erreur indiquant que la session est déjà en cours d’exécution.

  3. Indiquez les enregistreurs d’événements InSequentialFile qui ont déjà démarré pour un profil spécifique à l’aide de la commande suivante.

    xperf -profileloggers perf!GeneralProfiles.InSequentialFile
    

    La réponse à cette commande est similaire à l’exemple suivant.

    État de session pour « perf! » GeneralProfiles.InSequentialFile »:

    « Enregistreur d’événements du noyau NT » : en cours d’exécution

    PerfCoreUserSession_InSequentialFile : En cours d’exécution

  4. Arrêtez le profil de trace InSequentialFile , enregistrez les traces, puis fusionnez-les dans un fichier de trace, tel que Merged.etl, à l’aide de la commande suivante.

    xperf -stop perf!GeneralProfiles.InSequentialFile merged.etl
    

    Si un problème se produit, une erreur est signalée.

  5. Démarrez le profil de trace InSequentialFile , en remplaçant, au moment du début, les valeurs MaxBuffers pour toutes les sessions ETW, pour lesquelles les enregistreurs doivent être démarrés sur 256. Pour effectuer cette action, utilisez la commande suivante.

    xperf -start perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
    

    Si un problème se produit, une erreur est signalée.

  6. Mettez à jour les valeurs MaxBuffers pour les enregistreurs d’événements EtW InSequentialFile actifs spécifiés dans le profil de trace à l’aide de la commande suivante.

    xperf -update perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
    

    Aucune réponse n’est affichée après l’émission de cette commande.

Profils Xperf