Sunteți pe pagina 1din 12

Las técnicas de la

optimización de código
Lenguajes y Autómatas II
Las técnicas de optimización del Código.
 Las técnicas de optimización se basan en un extenso análisis de la
estructura del programa y del flujo de datos.
TECNICAS DE  La optimización suele subdividirse el programa en regiones de
optimización, y las técnicas empleadas pueden categorizarse
OPTIMIZACIÓN como independientes de la máquina y dependientes de la
máquina.
DE CÓDIGO
Las técnicas de optimización independientes de la máquina

No tienen porque considerar el conocimiento de la estructura de hardware ni el


conjunto de instrucciones de la máquina destino, por lo que son de carácter
TÉCNICAS DE general.

OPTIMIZACIÓN
Las técnicas de optimización independientes de la máquina
DE CÓDIGO
Se deben conocer el hardware y el conjunto de instrucciones, ya que
afectan cosas como la asignación de registros o a selección de
instrucciones.
Cálculo previo de constantes

Cuando aparecen varias constantes en una expresión


TÉCNICAS DE aritmética, puede ser posible combinarlas para formar
una sola constante.
OPTIMIZACIÓN
DE CÓDIGO Por ejemplo
 i := mayor – menor + 5
 donde mayor y menor son las constantes mayor = 10 y
menor = 1, se puede simplificar a i := 14
REDUCCIÓN DE FUERZA Y FRECUENCIA
Es el proceso por el cual una operación costosa (en términos de
tiempo de ejecución) se reemplaza por una más barata; la
reducción de frecuencia es un proceso por el cual ciertos cálculos
TÉCNICAS DE se mueven de una posición a otra para que se ejecuten con
menos frecuencia.
OPTIMIZACIÓN
DE CÓDIGO Por ejemplo
i := 0;
REPEAT
x := x + h[i + j – k]; i := i + 3;
UNTIL (i >max – 3)
OPTIMIZACIÓN DE LAZOS

La optimización de lazos es probablemente la entidad


TÉCNICAS DE que produce los mejores resultados en cuanto al tiempo
OPTIMIZACIÓN de ejecución de un programa.
DE CÓDIGO Por ejemplo

 FOR i := 1 TO 10000 DO h[i] := i + x * y END;


ELIMINACIÓN DE CÓDIGO

Se basa en la eliminación de código redundante y en


TÉCNICAS DE subexpresiones comunes.
OPTIMIZACIÓN
DE CÓDIGO Por ejemplo
 x := a / (j * k) – b / (j * k) ;
 donde j * k es la subexpresión común. Esta
subexpresión se puede eliminar como sigue:
 t := j * k; x := a / t – b / t;
REACOMODOS
Las reglas de asociatividad y distributividad, es posible efectuar
ciertos reacomodos en las expresiones lógicas y aritméticas
para obtener una reducción en la memoria temporal o un
TÉCNICAS DE incremento en la velocidad de ejecución.
OPTIMIZACIÓN
DE CÓDIGO OPTIMIZACIÓN LOCAL
Ser dependiente de la maquina si la optimización se basa en el
conjunto de instrucciones de la máquina destino. Sin embargo,
esta técnica también puede ser independiente de la máquina si,
por ejemplo la optimización se basa en el código intermedio.
Eliminación De Subexpresiones Comunes

Las subexpresiones son partes de expresiones más


TÉCNICAS DE grandes.
OPTIMIZACIÓN
DE CÓDIGO Por ejemplo

 D = C * (A + B)E = (A + B)/2.
Eliminación de código muerto
es una técnica de optimización de
software comúnmente llevada a cabo de forma
TÉCNICAS DE automática por un compilador optimizador que consta
en eliminar cualquier tipo de código muerto
OPTIMIZACIÓN
DE CÓDIGO Por ejemplo
Renombrar variables

TÉCNICAS DE Se modifica el nombre de la variable por una nueva


OPTIMIZACIÓN
DE CÓDIGO Por ejemplo

 RENAME VARIABLES (NombreAntiguo=NombreNuevo)

S-ar putea să vă placă și