/GENPROFILE
, /FASTGENPROFILE
(Genera compilazione instrumentata di profilatura)
Specifica la generazione di un .pgd
file dal linker per supportare l'ottimizzazione PGO (Profile-Guided Optimization). /GENPROFILE
e /FASTGENPROFILE
usano parametri predefiniti diversi. Usare /GENPROFILE
per favorire la precisione rispetto alla velocità e all'utilizzo della memoria durante la profilatura. Usare /FASTGENPROFILE
per favorire un utilizzo ridotto della memoria e la velocità rispetto alla precisione.
Sintassi
/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
Argomenti
È possibile specificare uno degli profile-argument
argomenti in /GENPROFILE
o /FASTGENPROFILE
. Gli argomenti elencati qui separati da un carattere pipe (|
) si escludono a vicenda. Usare un carattere virgola (,
) per separare gli argomenti. Non inserire spazi tra argomenti, virgole o dopo i due punti (:
).
COUNTER32
| COUNTER64
Usare COUNTER32
per specificare l'uso di contatori probe a 32 bit e COUNTER64
per specificare contatori probe a 64 bit. Quando si specifica /GENPROFILE
, il valore predefinito è COUNTER64
. Quando si specifica /FASTGENPROFILE
, il valore predefinito è COUNTER32
.
EXACT
| NOEXACT
Usare EXACT
per specificare incrementi interlock-safe thread per i probe. NOEXACT
specifica le operazioni di incremento non protette per i probe. Il valore predefinito è NOEXACT
.
MEMMAX
=value, MEMMIN
=value
Usare MEMMAX
e MEMMIN
per specificare le dimensioni massime e minime delle prenotazioni per i dati di training in memoria. Il valore è la quantità di memoria da riservare in byte. Per impostazione predefinita, questi valori vengono determinati da un approccio euristico interno.
PATH
| NOPATH
Utilizzare PATH
per specificare un set separato di contatori PGO per ogni percorso univoco di una funzione. Utilizzare NOPATH
per specificare un solo set di contatori per ogni funzione. Quando si specifica /GENPROFILE
, il valore predefinito è PATH
. Quando si specifica /FASTGENPROFILE
, il valore predefinito è NOPATH
.
TRACKEH
| NOTRACKEH
Specifica se usare i contatori aggiuntivi per mantenere un conteggio accurato quando vengono generate eccezioni durante il training. Utilizzare TRACKEH
per specificare contatori aggiuntivi per un conteggio esatto. Usare NOTRACKEH
per specificare singoli contatori per il codice che non usa la gestione delle eccezioni o che non si verificano eccezioni negli scenari di training. Quando si specifica /GENPROFILE
, il valore predefinito è TRACKEH
. Quando si specifica /FASTGENPROFILE
, il valore predefinito è NOTRACKEH
.
PGD
=filename
Specifica un nome di file di base per il .pgd
file. Per impostazione predefinita, il linker usa il nome del file di immagine eseguibile di base con un'estensione .pgd
.
Osservazioni:
Le /GENPROFILE
opzioni e /FASTGENPROFILE
indicano al linker di generare il file di strumentazione della profilatura necessario per supportare il training dell'applicazione per l'ottimizzazione pgo (Profile-Guided Optimization). Queste opzioni sono nuove in Visual Studio 2015. Preferire queste opzioni alle opzioni , e deprecate /LTCG:PGINSTRUMENT
e alle PogoSafeMode
variabili di ambiente , VCPROFILE_ALLOC_SCALE
e VCPROFILE_PATH
./POGOSAFEMODE
/PGD
Le informazioni di profilatura generate dal training dell'applicazione vengono usate come input per ottimizzazioni programmate di destinazione durante le compilazioni. È anche possibile impostare altre opzioni per controllare varie funzionalità di profilatura per le prestazioni durante il training e le compilazioni delle app. Le opzioni predefinite specificate da /GENPROFILE
offrono risultati più accurati, in particolare per app multithread complesse di grandi dimensioni. L'opzione /FASTGENPROFILE
usa impostazioni predefinite diverse per un footprint di memoria inferiore e prestazioni più veloci durante il training, a scapito dell'accuratezza.
Le informazioni di profilatura vengono acquisite quando si esegue l'app instrumentata dopo la compilazione usando /GENPROFILE
./FASTGENPROFILE
Queste informazioni vengono acquisite quando si specifica l'opzione /USEPROFILE
del linker per eseguire il passaggio di profilatura e quindi viene usata per guidare il passaggio di compilazione ottimizzato. Per altre informazioni su come eseguire il training dell'app e i dettagli sui dati raccolti, vedi Ottimizzazioni guidate dai profili.
Specificare /LTCG
sempre quando si specifica /GENPROFILE
o /FASTGENPROFILE
.
Per impostare questa opzione del linker nell'ambiente di sviluppo di Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.
Selezionare la pagina delle >proprietà Proprietà del linker della riga di comando del linker>di configurazione.
Immettere le
/GENPROFILE
opzioni o/FASTGENPROFILE
e gli argomenti nella casella Opzioni aggiuntive. ScegliereOK
di salvare le modifiche.
Per impostare l'opzione del linker a livello di codice
- Vedere AdditionalOptions.
Vedi anche
Informazioni di riferimento sul linker MSVC
Opzioni del linker MSVC
/LTCG
(Generazione di codice in fase di collegamento)