Optimizar el código

Si optimiza un ejecutable, puede lograr un equilibrio entre una velocidad de ejecución rápida y un tamaño de código pequeño. En este tema se analizan algunos mecanismos que proporciona Visual C++ para ayudarle a optimizar el código.

Características del lenguaje

En los siguientes temas se describen algunas de las características de optimización del lenguaje de C/C++.

  • Directivas pragma y palabras clave de optimización
    Una lista de palabras clave y pragmas que puede utilizar en el código para mejorar el rendimiento.

  • Opciones del compilador por categoría
    Una lista de opciones del compilador /O que afectan específicamente a la velocidad de ejecución o al tamaño del código.

  • Rvalue Reference Declarator: &&
    Las referencias a valor R (Rvalue) admiten la implementación de la semántica de transferencia de recursos. Si se utiliza la semántica de transferencia de recursos para implementar las bibliotecas de plantillas, el rendimiento de las aplicaciones que utilizan esas plantillas puede mejorar significativamente.

La directiva pragma Optimize

Si una sección optimizada del código origina errores o ralentiza la ejecución, puede utilizar la directiva pragma optimize para desactivar la optimización en esa sección.

Limite la sección de código con dos directivas pragma, según se indica a continuación.

#pragma optimize("", off)
// some code here 
#pragma optimize("", on)

Programar prácticas

Puede que vea algunos mensajes de advertencia adicionales al compilar el código con optimización. Este es el comportamiento previsto, ya que algunas advertencias solo están relacionadas con el código optimizado. Puede evitar muchos problemas de optimización si tiene en cuenta estas advertencias.

Paradójicamente, la optimización de un programa para aumentar la velocidad, puede hacer que el código se ejecute más despacio. Esto se debe a que algunas optimizaciones de velocidad aumentan el tamaño del código. Por ejemplo, al poner las funciones en línea se elimina la sobrecarga de las llamadas de función. Sin embargo, incluir demasiadas funciones en línea podría hacer su programa tan grande que el número de errores de página de memoria virtual aumentase. Así, la velocidad ganada al eliminar las llamadas a funciones puede perderse a causa del intercambio de memoria.

En los siguientes temas se analizan procedimientos de programación adecuados.

Depurar código optimizado

Dado que la optimización puede cambiar el código creado por el compilador, se recomienda depurar la aplicación y medir su rendimiento antes y después de optimizar el código.

Los temas siguientes proporcionan información básica sobre cómo depurar.

En los temas siguientes se ofrece información más avanzada sobre cómo depurar.

El siguiente gran variedad de temas proporciona información sobre cómo optimizar la compilación, la carga y ejecutar el código.

Vea también

Otros recursos

Referencia de compilación de C/C++