Você está na página 1de 17

Optimizacin Local

Es la form a m s sim ple de optim izacin


Las tcnicas de optim izacin locales analizarn slo
pequeas porciones de cdigo y en ellas realizarn m ejoras
La caracterstica de las optim izaciones locales es que slo
se ven refl
ejados en dichas secciones.
La optim izacin localse realiza sobre m dulos del
program a. En la m ayora de las ocasiones a travs de
funciones, m todos, procedim ientos, clases, etc.

Cada optim izacin local hace un poco por si


m ism a la optim izacin en com piladores se
realiza de form a repetida hasta que no sea
posible m ejorar. El optim izador se puede
parar en cualquier m om ento para lim itar el
tiem po de com pilacin

Las optim izaciones locales se realizan


sobre elbloque bsico
Optimizaciones locales :
Folding
Propagacin de constantes
Reduccin de potencia

Bloque Bsico
Un bloque bsico es un fragmento de cdigo que tiene
una nica entrada y salida, y cuyas instrucciones se
ejecutan secuencialmente.
Implicaciones:
Si se ejecuta una instruccin del bloque se ejecutan
todas en un orden conocido en tiempo de compilacin.
La idea del bloque bsico es encontrar partes del
programa cuyo anlisis necesario para la optimizacin
sea lo ms simple posible.

Ensam blam iento (Folding)


Elensam blam iento es rem plazar las expresiones por su
resultado cuando se pueden evaluar en tiem po de
com pilacin (resultado constante)
. Ejem plo: A= 2+ 3+ A+ C -> A= 5+ A+ C
Estas optim izaciones perm iten que elprogram ador
utilice clculos entre constantes representados
explcitam ente sin introducir inefi
ciencias.

Ejem plo
O ptim iza: 2+ 3+ b -> 5+ b
H ay una sum a de constantes (2+ 3)+ b
N o optim iza: 2+ b+ 3 -> 2+ b+ 3
N o hay una sum a de constantes (2+ b)+ 3

Propagacin de constantes
Estas optim izaciones perm iten que el program ador
utilice variables com o constantes sin introducir
inefi
ciencias.
Por ejem plo en C no hay constantes y ser lo m ism o
utilizar
Int a= 10; # defi
n e a 10
Con la ventaja que la variable puede ser local.
Actualm ente en C se puede defi
n ir const int a= 10;

Reduccin de potencia
Se busca sustituir operaciones costosas por otras m as
sim ples.
Ejem plo: sustituir productos por sum as
. a= 2*a a= a+ a
Evitar la operacin append (+ + )
A= length(s1 + + s2)
convertirlo
en A= length(s1)+ length(s2)

O ptim izacin de Ciclos


Los ciclos son una de las partes m s esenciales en el
rendim iento de un program a dado que realizan acciones
repetitivas, y si dichas acciones estn m al realizadas, el
problem a se hace N veces m s grandes.

La m ayora de las optim izaciones sobre ciclos tratan de


encontrar elem entos que no deben repetirse en un ciclo.

N o tiene sentido evaluar dentro delciclo.


Se m ueve elcdigo fuera delciclo.
El destino del cdigo es el bloque de entrada al ciclo, i
es una variable de induccin para un ciclo L siexiste.
U na constante c tal que cada vez que se asigna un valor
a i, su valor aum enta c
N ote que c puede ser positiva o negativa.

Ejem plo

En este caso es m ejor pasar elint c = a; afuera delciclo


de ser posible.

El problem a de la optim izacin en ciclos y en general


radica es que m uy difcil saber el uso exacto de algunas
instrucciones. As que no todo cdigo de proceso puede
ser
optim izado.

O tros uso de la optim izacin pueden ser el


m ejoram iento de consultas en SQ L o en aplicaciones
rem otas (sockets, E/S, etc.)

Bibliografa
http://myslide.es/documents/lenguajes-y-automatas-unidad-3competencias-optimizacion.html#
http://www.cvc.uab.es/shared/teach/a25002/Optimizacion%20de
%20codigo.pdf
https://prezi.com/phj_bj7_venc/lenguajes-y-automatas-ii/
http://dsc.itmorelia.edu.mx/~jcolivares/courses/ps207a/ps2_u7.pdf

Preguntas?

Você também pode gostar