/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 /USEPROFILE
para 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
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.
Selecione a página de propriedades Propriedades da Configuração>Vinculador>Linha de Comando.
Insira as opções
/GENPROFILE
ou/FASTGENPROFILE
e os argumentos na caixa Opções Adicionais. EscolhaOK
salvar suas alterações.
Para definir esta opção do vinculador por meio de programação
- Consulte AdditionalOptions.
Confira também
Referência de vinculador MSVC
Opções de vinculador MSVC
/LTCG
(Geração de código para tempo de vinculação)