Documentos de Académico
Documentos de Profesional
Documentos de Cultura
-Gabriel Cordero
Código -Michael Pérez
-Anthony tejada
7-4
2
¿Qué es la optimización de código?
Bloques Básicos
Bloques Básicos
5
Tipos de Optimizaciones
Optimización Global
▸ Peephole
Esta consiste en sustituir una secuencia
dada de instrucciones por una o varias
secuencias que realizan la misma acción
pero que son menos en números o más
rápidas de ejecución. Por tanto la
optimización peephole considera un
programa como un conjunto de pequeñas
series de instrucciones ,analizando
detenidamente cada una de ellas sin entrar
en consideraciones sobre el conjunto total.
8
Independiente de la Máquina
▸ 1. Propagación de Copias
Esta técnica considera las sentencias de asignación simples, de la forma a =
b. Después de la sentencia, sabemos que a y b tienen el mismo valor; por lo
tanto, podemos reemplazar las apariciones de a por las de b, y esperar que
al final a se convierta en un nombre “muerto” y que se pueda eliminar la
sentencia de copia (a = b ).
▸ 3. Optimizaciones aritméticas
Un buen grupo de optimizaciones de código se pueden obtener aplicando
transformaciones algebraicas simples que reduzcan el número de
operaciones o sustituyan operaciones costosas por otras más simples
equivalentes
9
3. Optimizaciones aritméticas
✓ suma: a + 0 = 0 + a = a
✓ resta: a - 0 = a
✓ multiplicación: a * 1 = 1 * a = a.
✓ división: a / 1 = a.
10
3. Optimizaciones aritméticas
▸ 5. Empaquetamientos temporales:
Normalmente, después de haber aplicado
una técnica para mejorar el código, se puede
reducir el número de nombres temporales
utilizados.
11
Costos Optimización
Ejemplo
OPTIMIZACIÓN PROPAGACIÓN DE
CÓDIGO INICIAL
ALGEBRAICA COPIA
a:= x**2
a:= x*x a:= x*x
b:=3
b:=3 b:=3
c:=x
c:=x c:=x
d:=c*c
d:=c*c d:=x*x
e:=b*2
e:=b+b e:=3+3
f:=a+d
f:=a+d f:=a+d
g:=e*f
g:=e*f g:=e*f
16
Ejemplo
ELIMINACIÓN DE SUB
REDUCCIÓN DE EXPRESIONES PROPAGACIÓN
CONSTANTES: COMUNES DE COPIAS
Ejemplo
ELIMINACIÓN DE
CÓDIGO MUERTO
a:= x*x
f:=a+a
g:=6*f
Gracias!