Artuculo
OPTIMIZACIÓN
Instituto Tecnológico Superior de Huatusco
Carrera: Ingeniería en sistemas computacionales
Autor: Adriana Diaz Lopéz
Materia: Lenguajes y Autómatas II
Introducción
Para que se pueda generar la Optimización de Código primero se
debe haber Generación de Código en esta fase se realiza mientras
se analiza el programa. Lo que busca la optimización es mejorar
la forma enque un programa utiliza los recursos. Las
optimizaciones se realizan en base al alcance ofrecido por el
compilador.
TIPOS DE OPTIMIZACION
La optimización va a depender del lenguaje de programación y es
directamente proporcional al tiempo de compilación; es decir,
entre más optimización mayor tiempo de compilación:
1)
2)
3)
4)
Dependientes de la maquina: técnicas que solo se
puedenaplicar a una determinada maquina objeto.
Independientes de la maquina: técnicas que son
aplicables a cualquier maquina objeto.
Locales: analizaran solo pequeñas porciones de código
y en ellas realizaran mejoras.
Globales: será necesario el análisis de todo el código.
Técnicas de optimización que se aplican al código generado para
un programa sencillo
I.
II.
III.
IV.
Folding
Propagación de constantes
Reducción de potencia
Reducción de subexpresiones comunes
CICLOS
Los ciclos son una de las partes más esenciales en el rendimiento
de un programa dado que realizan acciones repetitivas, y si
dichas acciones están mal realizadas, el problema se hace N
veces más grandes. La mayoría de las optimizaciones sobre ciclos
tratan de encontrar elementos que nodeben repetirse en un ciclo.
El problema de la optimización en ciclos y en general radica en
que es muy difícil saber el uso exacto de algunas instrucciones.
Así que no todo código de proceso puede ser optimizado. Otro
uso de la optimización puede ser el mejoramiento de consultas en
SQL o en aplicaciones remotas (sockets, E/S, etc.).
Centrar optimización en partes más usadas, no en todo elprograma Optimizar bucles internos
Mejoras factorización de expresiones invariantes
reducción de intensidad y eliminación de variables de
inducción
MIRILLA
La optimización de mirilla trata de estructurar de manera
eficiente el flujo del programa, sobre todo en instrucciones de
bifurcación como son las decisiones, ciclos y saltos de rutinas. La
idea es tener los saltos lo más cerca de lasllamadas, siendo el
salto lo más pequeño posible.
Ideas básicas:
Se recorre el código buscando combinaciones de
instrucciones que pueden ser reemplazadas por otras equivalentes
más eficientes.
Se utiliza una ventana de n instrucciones y un conjunto
de patrones de transformación (patrón, secuencias, remplazan).
Locales
Ciclos
Globales
De mirilla
Locales
La optimización localse realiza sobre módulos del programa. En
la mayoría de las ocasiones a través de funciones, métodos,
procedimientos, clases.
Las características de las optimizaciones locales es que solo se
ven reflejados en dichas secciones. La optimización local sirve
cuando un bloque de programa o sección es crítico por ejemplo:
la E/S, la concurrencia, la rapidez y confiabilidad de un conjunto
deinstrucciones. Las optimizaciones locales se realizan sobre el
bloque básico
Las nuevas instrucciones son reconsideradas para las futuras
optimizaciones.
Ejemplos:
Eliminación de cargas innecesarias
Reducción de potencia
Eliminación de cadenas de saltos
Globales
Antes de realizar una optimización global es necesario crear el
grafo de flujo de ejecución. El grafo de flujo deejecución
representa todos los caminos posibles de ejecución del programa.
La información contenida en el grafo es útil para:
•
•
el programador y
el optimizador
La optimización global a partir del análisis del grafo del flujo de
ejecución permite
Una propagación de constantes fuera del bloque básico.
Eliminación del código no utilizado
Una mejor asignación de los...
Regístrate para leer el documento completo.