/GF (Elimina stringhe duplicate)
Abilita il compilatore a creare una copia singola di stringhe identiche nell'immagine del programma e nella memoria durante l'esecuzione. Si tratta dell'ottimizzazione chiamata condivisione delle stringhe che può creare programmi di dimensioni minori.
/GF
Note
Se si utilizza /GF, il sistema operativo non scambia la parte di stringhe della memoria ed è in grado di rileggere le stringhe dal file di immagine.
/GF condivide le stringhe in sola lettura. Se si tenta di modificare le stringhe in /GF, si verifica un errore dell'applicazione.
La condivisione delle stringhe consente a quelli che erano destinati a essere puntatori multipli a buffer multipli di risultare come dei puntatori multipli a un singolo buffer. Nel codice che segue, s e t vengono inizializzati con la stessa stringa. La condivisione delle stringhe determina che puntino alla stessa memoria:
char *s = "This is a character buffer";
char *t = "This is a character buffer";
Nota
L'opzione /ZI, utilizzata per Modifica e continuazione, consente di impostare automaticamente l'opzione /GF.
Nota
L'opzione del compilatore /GF crea una sezione indirizzabile per ogni stringa univoca.Per impostazione predefinita inoltre un file oggetto contiene fino a 65.536 sezioni indirizzabili.Se il programma contiene più di 65.536 stringhe, utilizzare l'opzione del compilatore /bigobj per creare altre sezioni.
/GF è attiva quando si utilizza /O1 o /O2.
Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Procedura: aprire le pagine delle proprietà dei progetti.
Fare clic sulla cartella C/C++.
Fare clic sulla pagina delle proprietà Generazione codice.
Modificare la proprietà Attiva condivisione stringhe.
Per impostare l'opzione del compilatore a livello di codice
- Vedere StringPooling.