SPDConvert

Utilisez SPDConvert pour préparer et gérer des données de profil d’échantillons pour l’optimisation guidée par profils d’échantillons (SPGO).

Cet outil met en corrélation les exemples matériels bruts dans les fichiers SPT par rapport à la structure de code dans le SPD. Cette étape effectue des exemples de corrélation, de lissage de flux et de décisions de taille/vitesse, et produit un fichier SPD enrichi avec des nombres d’exécutions annotés sur le graphique de flux.

Vous pouvez combiner des données à partir de plusieurs sources, telles que des benchmarks de laboratoire, une supervision interne et des données de télémétrie de production, dans une seule conversion. Pour souligner l’importance d’un scénario particulier, vous pouvez spécifier son fichier SPT plusieurs fois. Le fait de mentionner trois fois une référence critique SPT revient effectivement à tripler son poids.

Cet outil fonctionne en trois modes :

  • import des données .SPT dans un fichier .SPD pour les compilations /SPGO
  • extraire un fichier .SPD intégré d’un fichier .PDB
  • fusionner plusieurs fichiers .SPD issus de sessions de profilage distinctes

SPDConvert fonctionne avec trois types de fichiers :

  • ETL (journal de trace d’événements) Événements bruts de performance matérielle enregistrés par xperf
  • SPT (Trace de profil d’échantillon) Événements d’échantillon empaquetés produits par SPTAggregate à partir de fichiers ETL
  • SPD (Exemple de base de données de profil) Données de profil traitées par le compilateur pendant une build optimisée. Vous pouvez également intégrer des fichiers SPD dans des fichiers de symboles PDB lors d’une /spdembed génération

Syntax

Importez des données SPT dans un fichier SPD existant :

SPDConvert [options] spdfilesptfile(s)

Extrayez un fichier SPD incorporé à partir d’une base de données PDB :

SPDConvert /extractpdbfilespdfile

Fusionnez plusieurs fichiers SPD en un :

SPDConvert /mergeoutputspdfilespdfile(s)

Paramètres

MODE D’IMPORTATION

Options
Spécifiez les options suivantes en mode d’importation :

  • /Mode:<IP|LBR> Sélectionnez le mode profil. Utilisez IP pour les données de profil du pointeur d’instruction (par défaut) ou LBR pour les données de profil du dernier enregistrement de branche.
  • /reset: Réinitialise le compteur à 0. Cette action ignore les SPT. Utilisez cette option pour réinitialiser un fichier SPD avant d’importer de nouvelles données ou pour créer un fichier SPD vide si le fichier spécifié n’existe pas.
  • /sptlist :<Fichier> Spécifiez les noms de fichiers SPT dans un fichier texte, avec un nom de fichier par ligne.
  • /Résumé Imprimez un résumé du fichier SPD.
  • /Aide Affichez les informations d’aide.

spdfile
Fichier SPD dans lequel importer des exemples de données.

sptfiles
Un ou plusieurs fichiers SPT à importer. Les fichiers SPT sont produits par SPTAggregate.

MODE EXTRACT (/extract)

pdbfile
Fichier PDB qui contient un SPD incorporé.

spdfile
Fichier SPD de sortie à créer.

MODE MERGE (/merge)

outputspdfile
Fichier SPD de sortie à créer.

/Retraite:<N> Définissez le taux de mise hors service des données de profil sur N/16, où 0 ≤ N ≤ 16. La valeur par défaut est 8. Cette valeur contrôle la quantité de données existantes dans un SPD à supprimer lors de l’ajout de nouvelles données SPT. Par exemple, /retire:8 supprime 8/16 (moitié) des données existantes avant d’ajouter de nouvelles données SPT. Ce paramètre pèse plus fortement les données de profil plus récentes, car elle ignore la moitié des données plus anciennes. Les deux usages les plus courants sont /retire:0, qui attribue un poids égal à toutes les exécutions de profilage, ou /retire:16, pour que seules les données les plus récentes soient prises en compte, car il supprime toutes les anciennes données. Utilisez /retire:N pour contrôler à quel point SPDConvert accorde moins d’importance aux anciennes données de profil. Ce concept de « report » vous permet d’actualiser un profil à l’aide de données SPD existantes sans commencer par de nouvelles données de profilage, ce qui prend beaucoup de temps. Ce concept est abordé plus en détail dans le didacticiel SPGO : réutilisation des informations SPD entre les builds.

spdfiles
Un ou plusieurs fichiers SPD à fusionner.

Remarques

Note

Exécutez cet outil depuis une invite de commandes développeur pour Visual Studio.

SPDConvert est l’outil de conversion principal dans le flux de travail SPGO. Après avoir collecté une trace à l’aide de xperf et l’avoir convertie en fichier SPT à l’aide de SPTAggregate, utilisez SPDConvert pour importer les données d’exemple dans un fichier SPD. Transmettez le fichier SPD obtenu au compilateur à l’aide de l’indicateur /SPGO pour générer un fichier binaire optimisé.

Utilisez /extract pour récupérer un fichier SPD intégré à un fichier PDB lors d’une /SPGO compilation. Utilisez /merge pour combiner des fichiers SPD issus de plusieurs sessions de profilage avant de reconstruire.

Le GUID et l’âge d’un fichier binaire doivent correspondre entre les fichiers SPT et SPD. S’ils ne correspondent pas, SPDConvert signale une erreur « VERSION SPD incompatible ». Permet SPTDump /progid de vérifier les identificateurs binaires dans le fichier SPT et SPDDump /header de vérifier le fichier SPD.

Le GUID et l’âge du fichier binaire enregistré dans le fichier SPD doivent correspondre au fichier SPT. Pour diagnostiquer cette erreur, utilisez SPTDump /progid pour inspecter les identificateurs binaires dans le fichier SPT et SPDDump /header pour inspecter le fichier SPD. Un fichier SPD valide est utilisé dans la mesure du possible. Les mises à jour mineures du code qui ne modifient pas le flux de contrôle du programme sont tolérées. Les fonctions inchangées utilisent également les données pour l’optimisation. Si vous fournissez un SPD valide, mais non lié, le processus fonctionne, mais il est probable qu’aucune donnée n’est utilisable pour l’optimisation.

Example

Cet exemple importe les données de profil LBR à partir d’un fichier SPT dans un fichier SPD :

SPDConvert /mode:LBR sample.spd sample.spt

Cet exemple importe les données de profil IP à l’aide d’une liste de fichiers SPT :

SPDConvert /mode:IP /sptlist:mysptfiles.txt sample.spd

Cet exemple affiche un résumé des données de profil dans un fichier SPD :

SPDConvert /summary sample.spd

Cet exemple extrait le SPD incorporé à partir d’un fichier PDB :

SPDConvert /extract sample.pdb sample_extracted.spd

Cet exemple fusionne deux fichiers SPD à partir de différentes exécutions de profilage :

SPDConvert /merge combined.spd run1.spd run2.spd

Voir aussi

Tutoriel : utiliser l’optimisation guidée par profil d’échantillons (SPGO) pour améliorer les performances
SPDDump
SPTAggregate
SPTDump