/GENPROFILE, /FASTGENPROFILE (gerar build instrumentado de criação de perfil)

Especifica a geração de um arquivo .pgd pelo vinculador para dar suporte à PGO (otimização guiada por perfil). /GENPROFILE e /FASTGENPROFILE usam parâmetros padrão diferentes. Use /GENPROFILE para dar prioridade à precisão em relação à velocidade e ao uso de memória durante a criação de perfil. Use /FASTGENPROFILE para dar prioridade ao menor uso de memória e à velocidade em vez da precisão.

Sintaxe

/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

Qualquer um dos argumentos profile-argument pode ser especificado para /GENPROFILE ou /FASTGENPROFILE. Os argumentos listados aqui separados por um caractere de pipe (|) são mutuamente exclusivos. Use um caractere de vírgula (,) para separar argumentos. Não coloque espaços entre argumentos, vírgulas ou após os dois-pontos (:).

COUNTER32 | COUNTER64
Use COUNTER32 para especificar o uso de contadores de investigação de 32 bits e COUNTER64 para especificar contadores de investigação de 64 bits. Quando você especifica /GENPROFILE, o padrão é COUNTER64. Quando você especifica /FASTGENPROFILE, o padrão é COUNTER32.

EXACT | NOEXACT
Use EXACT para especificar incrementos interligados thread-safe em investigações. NOEXACT especifica operações de incremento desprotegidas em investigações. O padrão é NOEXACT.

MEMMAX=value, MEMMIN=value
Use MEMMAX e MEMMIN para especificar os tamanhos máximos e mínimos de reserva para dados de treinamento na memória. O valor é a quantidade de memória a ser reservada em bytes. Por padrão, esses valores são determinados por uma heurística interna.

PATH | NOPATH
Use PATH para especificar um conjunto separado de contadores de PGO para cada caminho exclusivo para uma função. Use NOPATH para especificar apenas um conjunto de contadores para cada função. Quando você especifica /GENPROFILE, o padrão é PATH. Quando você especifica /FASTGENPROFILE, o padrão é NOPATH.

TRACKEH | NOTRACKEH
Especifica se os contadores adicionais devem ser usados para manter uma contagem precisa se exceções forem lançadas durante o treinamento. Use TRACKEH para especificar contadores extras para uma contagem exata. Use NOTRACKEH para especificar contadores únicos para o código que não usa tratamento de exceção ou que não se depara com exceções nos cenários de treinamento. Quando você especifica /GENPROFILE, o padrão é TRACKEH. Quando você especifica /FASTGENPROFILE, o padrão é NOTRACKEH.

PGD=filename
Especifica um nome de arquivo de base para o arquivo .pgd. Por padrão, o vinculador usa o nome do arquivo de base de imagem executável com uma extensão .pgd.

Comentários

As opções /GENPROFILE e /FASTGENPROFILE informam ao vinculador para gerar o arquivo de instrumentação de criação de perfil necessário para dar suporte ao treinamento do aplicativo para PGO (otimização guiada por perfil). Essas opções são novas no Visual Studio 2015. Prefira essas opções às opções preteridas /LTCG:PGINSTRUMENT, /PGD e /POGOSAFEMODE e às variáveis de ambiente PogoSafeMode, VCPROFILE_ALLOC_SCALE e VCPROFILE_PATH. As informações de criação de perfil geradas pelo treinamento do aplicativo são usadas como entrada para otimizações de todo o programa direcionadas durante builds. Você também pode definir outras opções para controlar o desempenho de vários recursos de criação de perfil durante o treinamento e as compilações do aplicativo. As opções padrão especificadas por /GENPROFILE fornecem os resultados mais precisos, especialmente para aplicativos grandes e complexos com vários threads. A opção /FASTGENPROFILE usa padrões diferentes para um volume de memória mais baixo e desempenho mais rápido durante o treinamento, em detrimento da precisão.

As informações de criação de perfil são capturadas quando você executa o aplicativo instrumentado depois de compilar usando /GENPROFILE de /FASTGENPROFILE. Essas informações são capturadas quando você especifica a opção do vinculador /USEPROFILEpara executar a etapa de criação de perfil e, em seguida, usadas para guiar a etapa de build otimizada. Para obter mais informações sobre como treinar seu aplicativo e detalhes sobre os dados coletados, confira Otimizações guiadas por perfil.

Sempre especifique /LTCG quando você especificar /GENPROFILE ou /FASTGENPROFILE.

Para definir esta opção do vinculador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.

  2. Selecione a página de propriedades Propriedades da Configuração>Vinculador>Linha de Comando.

  3. Insira as opções /GENPROFILE ou /FASTGENPROFILE e os argumentos na caixa Opções Adicionais. Escolha OK salvar suas alterações.

Para definir esta opção do vinculador por meio de programação

Confira também

Referência de vinculador MSVC
Opções de vinculador MSVC
/LTCG (Geração de código para tempo de vinculação)