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.Declarador de referencia Rvalue: &&
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.
Sugerencias para mejorar código en el que la velocidad de ejecución es importante
Técnicas mejores de codificación pueden producir mejor rendimiento.En este tema se sugieren técnicas de codificación que pueden ayudarle a asegurarse de que las partes del código que llevan mucho tiempo funcionan correctamente.Procedimientos recomendados para la optimización
Proporciona directrices generales sobre la mejor forma de optimizar la aplicación.
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.
La utilización de un nombre de función sin () no genera código
Especificar optimizaciones del compilador para un proyecto ATL
Para obtener más información sobre cómo reducir el tiempo de carga de métodos DLL, vea el artículo " Optimizing DLL Load Time Performance ", que se encuentra en la columna "Under the Hood " de "MSDN Magazine", en el sitio web Biblioteca MSDN.
Para obtener más información sobre cómo minimizar la paginación en aplicaciones, vea los artículos "Improving Runtime Performance with the Smooth Working Set Tool" e "Improving Runtime Performance with the Smooth Working Set Tool—Part 2", que se encuentran en la columna "Bugslayer" de "MSDN Magazine", en el sitio web Biblioteca MSDN.