Share via


/GENPROFILE, /FASTGENPROFILE (Generar compilación instrumentada de generación de perfiles)

Especifican la generación de un archivo .pgd mediante el enlazador para admitir la optimización guiada por perfiles (PGO). /GENPROFILE y /FASTGENPROFILE usan parámetros predeterminados diferentes. Use /GENPROFILE para favorecer la precisión sobre el uso de memoria y velocidad durante la generación de perfiles. Use /FASTGENPROFILE para favorecer el menor uso de memoria y velocidad sobre la precisión.

Sintaxis

/GENPROFILE[:profile-argument[,profile-argument ...]]
/FASTGENPROFILE[:profile-argument[,profile-argument ...]] \

profile-argument
 { COUNTER32 | COUNTER64 }
 { EXACT | NOEXACT }
MEMMAX=value
MEMMIN=value
 { PATH | NOPATH }
 { TRACKEH | NOTRACKEH }
PGD=filename

Argumentos

Cualquiera de los argumentos profile-argument se puede especificar en /GENPROFILE o /FASTGENPROFILE. Los argumentos enumerados aquí separados por un carácter de barra vertical (|) son mutuamente excluyentes. Use un carácter de coma (,) para separar argumentos. No coloque espacios entre argumentos, comas o después de los dos puntos (:).

COUNTER32 | COUNTER64
Use COUNTER32 para especificar el uso de contadores de sondeo de 32 bits y COUNTER64 para especificar contadores de sondeo de 64 bits. Cuando se especifica /GENPROFILE, el valor predeterminado es COUNTER64. Cuando se especifica /FASTGENPROFILE, el valor predeterminado es COUNTER32.

EXACT | NOEXACT
Use EXACT para especificar incrementos interbloqueados seguros para subprocesos para los sondeos. NOEXACT especifica las operaciones de incremento no protegido para los sondeos. El valor predeterminado es NOEXACT.

MEMMAX=value, MEMMIN=value
Use MEMMAX y MEMMIN para especificar los tamaños de reserva máximo y mínimo para los datos de entrenamiento en memoria. El valor es la cantidad de memoria que se reserva en bytes. De forma predeterminada, estos valores se determinan mediante una heurística interna.

PATH | NOPATH
Use PATH para especificar un conjunto independiente de contadores PGO para cada ruta de acceso única a una función. Use NOPATH para especificar solo un conjunto de contadores para cada función. Cuando se especifica /GENPROFILE, el valor predeterminado es PATH. Cuando se especifica /FASTGENPROFILE, el valor predeterminado es NOPATH.

TRACKEH | NOTRACKEH
Especifican si se deben usar contadores adicionales para mantener un recuento preciso cuando se produzcan excepciones durante el entrenamiento. Use TRACKEH para especificar contadores adicionales para un recuento exacto. Use NOTRACKEH para especificar contadores únicos para el código que no usa el control de excepciones o que no produce excepciones en los escenarios de entrenamiento. Cuando se especifica /GENPROFILE, el valor predeterminado es TRACKEH. Cuando se especifica /FASTGENPROFILE, el valor predeterminado es NOTRACKEH.

PGD=filename
Especifica un nombre de archivo base para el archivo .pgd. De forma predeterminada, el enlazador usa el nombre de archivo de imagen ejecutable base con una extensión .pgd.

Comentarios

Las opciones /GENPROFILE y /FASTGENPROFILE indican al enlazador que genere el archivo de instrumentación de generación de perfiles necesario para admitir el entrenamiento de la aplicación para la optimización guiada por perfiles (PGO). Estas opciones son nuevas en Visual Studio 2015. Prefiere estas opciones a las opciones en desuso /LTCG:PGINSTRUMENT, /PGD, y /POGOSAFEMODE, y a las PogoSafeModevariables de entorno VCPROFILE_ALLOC_SCALEy VCPROFILE_PATH. La información de generación de perfiles creada mediante el entrenamiento de la aplicación se usa como entrada para realizar optimizaciones dirigidas de todo el programa durante las compilaciones. Se pueden establecer opciones adicionales para controlar diversas características de generación de perfiles de rendimiento durante el entrenamiento de la aplicación y las compilaciones. Las opciones predeterminadas especificadas por /GENPROFILE proporcionan resultados más precisos, especialmente para las aplicaciones multiproceso grandes y complejas. La opción /FASTGENPROFILE usa valores predeterminados diferentes para un menor consumo de memoria y un rendimiento más rápido durante el entrenamiento, a costa de precisión.

La información de generación de perfiles se captura cuando se ejecuta la aplicación instrumentada después de compilar mediante /GENPROFILE de /FASTGENPROFILE. Esta información se captura cuando se especifica la opción del enlazador /USEPROFILE para realizar el paso de generación de perfiles y, a continuación, se usa para guiar el paso de compilación optimizado. Para obtener más información sobre cómo entrenar su aplicación según los datos recopilados, vea Optimización guiada por perfiles.

Especifique siempre /LTCG cuando especifique /GENPROFILE o /FASTGENPROFILE.

Para establecer esta opción del vinculador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Seleccione la página de propiedades Propiedades de configuración>Enlazador>Línea de comandos.

  3. Escriba las opciones y los argumentos /GENPROFILE o /FASTGENPROFILE en el cuadro Opciones adicionales. Elija OK guardar los cambios.

Para establecer esta opción del vinculador mediante programación

Consulte también

Referencia del enlazador MSVC
Opciones del enlazador MSVC
/LTCG (Generación de código en tiempo de vínculo)