Comment : fusionner plusieurs profils PGO en un seul profil
L’optimisation guidée par profil (PGO) est un excellent outil pour créer des fichiers binaires optimisés en fonction d’un scénario profilé. Mais que se passe-t-il si vous avez une application qui a plusieurs scénarios importants, mais distincts ? Comment créer un profil unique que PGO peut utiliser à partir de plusieurs scénarios différents ? Dans Visual Studio, le gestionnaire PGO, pgomgr.exe, effectue ce travail pour vous.
La syntaxe de fusion des profils est la suivante :
pgomgr /merge[:num] [.pgc_files] .pgd_files
où num
est un poids facultatif à utiliser pour les fichiers .pgc ajoutés par cette fusion. Les pondérations sont couramment utilisées s’il existe des scénarios plus importants que d’autres ou s’il existe des scénarios à exécuter plusieurs fois.
Remarque
Le gestionnaire PGO ne fonctionne pas avec les données de profil obsolètes. Pour fusionner un fichier .pgc dans un fichier .pgd, le fichier .pgc doit être généré par un exécutable créé par le même appel de lien qui a généré le fichier .pgd.
Exemples
Dans cet exemple, le gestionnaire PGO ajoute pgcFile.pgc à pgdFile.pgd six fois :
pgomgr /merge:6 pgcFile.pgc pgdFile.pgd
Dans cet exemple, le gestionnaire PGO ajoute pgcFile1.pgc et pgcFile2.pgc à pgdFile.pgd, deux fois pour chaque fichier .pgc :
pgomgr /merge:2 pgcFile1.pgc pgcFile2.pgc pgdFile.pgd
Si le Gestionnaire PGO est exécuté sans arguments de fichier .pgc, il recherche dans le répertoire local tous les fichiers .pgc qui ont le même nom de base que le fichier .pgd suivi d’un point d’exclamation ( !) et un ou plusieurs caractères arbitraires. Par exemple, si le répertoire local contient des fichiers test.pgd, test !1.pgc, test2.pgc et test !hello.pgc, et que la commande suivante est exécutée à partir du répertoire local, pgomgr fusionne test !1.pgc et test !hello.pgc dans test.pgd.
pgomgr /merge test.pgd