/GF (Eliminar cadenas duplicadas)
Permite al compilador crear una copia única de cadenas iguales en la imagen del programa y en la memoria durante la ejecución. Es una optimización denominada agrupación de cadenas que puede crear programas más pequeños.
Sintaxis
/GF
Comentarios
Si usa /GF, el sistema operativo no intercambia la parte de las cadenas en la memoria y puede volver a leerlas desde el archivo de imagen.
/GF agrupa las cadenas como de solo lectura. Si intenta modificar las cadenas en /GF, se produce un error de aplicación.
La agrupación de cadenas permite que lo que se ha diseñado como varios punteros a varios búferes sean múltiples punteros a un único búfer. En el siguiente código, s
y t
se inicializan con la misma cadena. La agrupación de cadenas hace que apunten a la misma memoria:
char *s = "This is a character buffer";
char *t = "This is a character buffer";
Nota:
La opción /ZI, que se usa para Editar y continuar, establece automáticamente la opción /GF.
Nota:
La opción del compilador /GF crea una sección direccionable para cada cadena única. De manera predeterminada, un archivo objeto puede contener hasta 65 536 secciones direccionables. Si el programa contiene más de 65 536 cadenas, use la opción del compilador /bigobj para crear más secciones.
/GF se habilita cuando se usa /O1 o /O2.
Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.
Seleccione la página de propiedades Propiedades de configuración>C/C++>Generación de código.
Modifique la propiedad Habilitar agrupación de cadenas.
Para establecer esta opción del compilador mediante programación
- Vea StringPooling.
Consulte también
Opciones del compilador de MSVC
Sintaxis de la línea de comandos del compilador MSVC