You are on page 1of 16

UNIDAD 3

OPTIMIZACIN
3.1 TIPOS DE
OPTIMIZACIN:

3.1.1 LOCALES
3.1.2 CICLOS
3.1.3 GLOBALES
3.1.4 DE MIRILLA
3.1 TIPOS DE OPTIMIZACIN
Las optimizaciones pueden realizarse de
formas diferentes.

Se realizan en base al alcance ofrecido por


el compilador.

Depende del lenguaje de programacin y es


directamente proporcional al tiempo de
compilacin; es decir, entre ms
optimizacin mayor tiempo de compilacin.
TIPOS DE OPTIMIZACIN
Como el tiempo de optimizacin es un
gran consumidor del mismo (dado que
tiene que recorrer todo el rbol de
posibles soluciones para el proceso de
optimizacin) la optimizacin se deja
hasta la fase de prueba final.

Algunos editores ofrecen una versin de


depuracin y otra de entrega o final.
TIPOS DE OPTIMIZACIN
La optimizacin es un proceso que
tiene a minimizar o maximizar alguna
variable de rendimiento, generalmente
de tiempo, espacio, procesador, etc.

Desafortunadamente no existe un
optimizador que haga un programa ms
rpido y que ocupe menor espacio.
TIPOS DE OPTIMIZACIN
La optimizacin se realiza
reestructurando el cdigo de tal forma
que el nuevo cdigo generado tenga
mayores beneficios.

La mayora de los compiladores tienen


una optimizacin baja, se necesita de
compiladores especiales para realmente
optimizar el cdigo.
Variaciones de optimizacin
Hay muchas variaciones en la cantidad de
optimizacin de cdigo que ejecutan los
distintos compiladores.
En los que hacen mucha optimizacin llamados
compiladores optimizadores, una parte
significativa del tiempo del compilador se
ocupa en esta fase.
Sin embargo; hay optimaciones sencillas que
mejoran significativamente el tiempo de
ejecucin del programa objeto sin retardar
demasiado la compilacin.
Ejemplo de cdigo optimizado y sin optimizar
3.1.1 LOCALES
La optimizacin local se realiza sobre
mdulos del programa. En la mayora de
las ocasiones a travs de funciones,
mtodos, procedimientos, clases, etc.

La caracterstica de las optimizaciones


locales es que slo se ven reflejados en
dichas secciones.
LOCALES
La optimizacin local sirve cuando un
bloque de programa o seccin es crtico
por ejemplo: en las E/S, concurrencia,
rapidez y confiabilidad de un conjunto de
instrucciones.

Como el espacio de soluciones es ms


pequeo la optimizacin local es ms
rpida.
3.1.2 CICLOS
Los ciclos son una de las partes ms
esenciales en el rendimiento de un
programa dado que realizan acciones
repetitivas y si dichas acciones estn mal
realizadas, el problema se hace n veces
ms grande.

La mayora de las optimizaciones sobre


ciclos tratan de encontrar elementos que
no deben repetirse en un ciclo.
CICLOS
while (a==b)
{
int b = a;
b = 8;
;
}

En este caso es mejor pasar el int b = a;


fuera de ciclo de ser posible.
CICLOS
El problema de la optimizacin en ciclos y
en general radica en que es muy difcil
saber el uso exacto de algunas
instrucciones. As que no todo el cdigo
del proceso puede ser optimizado.

Otros usos de la optimizacin puede ser


el mejoramiento de consultas en SQL o
en aplicaciones remotas (como sockets,
E/S, WCF: windows commnication foundation, etc.)
3.1.3 GLOBALES
La optimizacin global se da con
respecto a todo el cdigo.
Este tipo de optimizacin es ms lenta
pero mejora el desempeo general de
todo el programa.
Las optimizaciones globales pueden
depender de la arquitectura de la
mquina.
GLOBALES
En algunos casos es mejor mantener
variables globales para agilizar los
procesos ya que el proceso de declarar
variables y eliminarlas toma su tiempo,
pero consumen ms memoria.

Algunas optimizaciones incluyen utilizar


como variables registros del CPU,
utilizar instrucciones en ensamblador.
3.1.4 DE MIRILLA
La optimizacin de mirilla trata de
estructurar de manera eficiente el flujo del
programa, sobre todo en instrucciones de
bifurcacin como son las decisiones, los
ciclos y saltos de rutinas.

La idea es tener los saltos lo ms cerca de


las llamadas, siendo el salto lo ms
pequeo posible.

You might also like