miércoles, 25 de marzo de 2020

3.1.3 Globales

La optimización global se da con respecto a todo el código.Este tipo de optimización es más lenta pero mejora el desempeño general de todo programa. 
Las optimizaciones globales pueden depender de la arquitectura de la máquina.

Funcionamiento

Revisa el código generado a varios niveles de abstracción y realiza las optimizaciones aplicables al nivel de abstracción
Representaciones de código para extraer información de grafos.

Condiciones que se deben de cumplir

El código optimizado se ha de comportar igual que el código de partida excepto por ser más rápido o ocupar menos espacio.

Hay que buscar transformaciones que no modifiquen el comportamiento del código según el comportamiento definido para el lenguaje de programación.

EJEMPLO

Si no se ha definido el orden de evaluación de los operandos la siguiente optimización es válida.
B=2*A+(A=c*d);

Pasar a

A=c*d;

B=A*3;



Objetivo


Obtener código que se ejecuta más eficientemente según los criterios
• Tiempo de ejecución (optimización temporal)
• Espacio de memoria utilizado(optimización espacial)

En algunos casos es mejor mantener variables globales para agilizar los procesos (el proceso de declarar variables y eliminarlas toma su tiempo) pero consume más memoria.


Saúl Santiago Hernandez

Referencia: Aho(2006),et. al. Compiladores:Principios y Técnicas. Segunda Edición.

No hay comentarios.:

Publicar un comentario