Optimización de código

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Optimización de código por Mind Map: Optimización de código

1. Se sabe que la optimización absoluta es indecidible, es decir, no puede saberse con certeza si una versión concreta de código objeto es la más eficiente posible. El objetivo de esta fase sólo puede ser, por tanto, proporcionar una versión que mejore en algo el código generado

2. optimización de código es la fase cuyo objetivo consiste en modificar el código objeto generado por el generador de código, para mejorar su rendimiento.

3. Se tienen múltiples formas de optimizar código:

3.1. 1.- Instrucciones especiales

3.2. 2.- Reordenación de código

3.3. 3.- Ejecución en tiempo de compilación

3.4. 4.- Eliminación de redundancias

3.5. 5.- Reordenación de operaciones

3.6. 6.- Optimización de bucles

3.7. 7.- Optimización de regiones

3.8. 8.- Identificación y eliminación de las asignaciones muertas

4. .

5. Las optimizaciones se pueden dividir en dos grandes grupos, en función de que se puedan aplicar únicamente en una máquina concreta, o en cualquiera.

5.1. Optimizaciones dependientes de la máquina: Para aplicarlas, la máquina debe proporcionar las herramientas necesarias. Se describirán los siguientes ejemplos de este tipo de optimizaciones:

5.2. 1.- Minimización del uso de registros en máquinas en las que no se disponga de un conjunto de registros muy grande. 2.- Uso de instrucciones especiales de la máquina, que supongan una optimización respecto al uso de construcciones más generales. 3.-Reordenación de código: algunas arquitecturas son más eficientes cuando las operaciones se ejecutan en un orden determinado.

5.3. Optimizaciones independientes de la máquina: Mejoran la eficiencia sin depender de la máquina concreta utilizada. En este capítulo se explicarán con detalle los siguientes ejemplos de este tipo de optimización:

5.4. 1.- Ejecución parcial del código por parte del compilador, en lugar de retrasar su ejecución al programa objeto. 2.- Eliminación de código que resulta redundante, porque previamente se ha ejecutado un código equivalente. 3.- Cambio de orden de algunas instrucciones, que puede dar lugar a un código más eficiente. 4.- Es frecuente que los bucles sean poco eficientes, porque se ejecuten en su cuerpo instrucciones que podrían estar fuera de él, o porque la reiteración inherente al bucle multiplique la ineficiencia causada por el uso de operaciones costosas, cuando podrían utilizarse otras menos costosas y equivalentes.