Share via


/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:PGINSTRUMENTe alle PogoSafeModevariabili di ambiente , VCPROFILE_ALLOC_SCALEe 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

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle >proprietà Proprietà del linker della riga di comando del linker>di configurazione.

  3. Immettere le /GENPROFILE opzioni o /FASTGENPROFILE e gli argomenti nella casella Opzioni aggiuntive. Scegliere OK di salvare le modifiche.

Per impostare l'opzione del linker a livello di codice

Vedi anche

Informazioni di riferimento sul linker MSVC
Opzioni del linker MSVC
/LTCG (Generazione di codice in fase di collegamento)