Exportar (0) Imprimir
Expandir todo
Este tema aún no ha recibido ninguna valoración - Valorar este tema

/Og (optimizaciones globales)

Actualización: noviembre 2007

Proporciona optimizaciones locales y globales, asignación automática de registros y optimización de bucles. En desuso.


/Og

Están disponibles las siguientes optimizaciones:

  • Eliminación de subexpresiones comunes locales y globales

    En esta optimización, el valor de una subexpresión común se calcula una sola vez. En el ejemplo siguiente, si los valores de b y c no varían entre las tres expresiones, el compilador puede asignar el cálculo de b + c a una variable temporal y sustituirla por b + c:

    a = b + c;
    d = b + c;
    e = b + c;
    

    Para la optimización de subexpresiones comunes locales, el compilador examina la presencia de subexpresiones comunes en secciones breves del código. Para la optimización de subexpresiones comunes globales, el compilador busca subexpresiones comunes en funciones completas.

  • Asignación automática de registros

    Esta optimización permite al compilador almacenar variables y subexpresiones de uso frecuente en registros; se omite la palabra clave register.

  • Optimización de bucles

    Esta optimización elimina las subexpresiones invariables del cuerpo de un bucle. Un bucle óptimo sólo contiene expresiones cuyos valores varían en cada ejecución del bucle. En el ejemplo siguiente, la expresión x + y no varía en el cuerpo del bucle:

    i = -100;
    while( i < 0 ) {
        i += x + y;
    }
    

    Tras la optimización, x + y se calcula una sola vez y no en cada ejecución del bucle:

    i = -100;
    t = x + y;
    while( i < 0 ) {
        i += t;
    }
    

    La optimización de bucles es mucho más eficaz cuando el compilador puede suponer que no existe efecto escalonado (aliasing), el cual se establece con __restrict, noalias o restrict.

    1yk3ydd7.alert_note(es-es,VS.90).gifNota:

    Puede habilitar o deshabilitar la optimización global función por función mediante la directiva pragma optimize con la opción g.

La opción /Og también habilita la optimización del valor devuelto con nombre, que elimina el constructor y el destructor de copias de un valor devuelto basado en la pila. Vea /O1, /O2 (Minimizar tamaño, maximizar velocidad) para obtener más información.

Para obtener información relacionada, vea Generar funciones intrínsecas (/Oi) y Optimización completa (/Ox).

/Og está en desuso en Visual C++ 2005; utilice /O1 o /O2 en su lugar. Para obtener más información, vea Opciones obsoletas del compilador en Visual C++ 2005.

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para obtener información detallada, vea Cómo: Abrir páginas de propiedades del proyecto.

  2. Haga clic en la carpeta C/C++.

  3. Haga clic en la página de propiedades Línea de comandos.

  4. Escriba la opción del compilador en el cuadro Opciones adicionales.

Para establecer esta opción del compilador mediante programación

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.