Professional Documents
Culture Documents
CODIGOS
OPTIMIZACION DE CODIGO
Es el proceso de modificacin de unsoftwarepara
hacer que algn aspecto del mismo funcione de
manera mseficientey/o utilizar menos recursos
(mayorrendimiento). En general, unprogramapuede
ser optimizado para que se ejecute ms
rpidamente, o sea capaz de operar con
menosmemoriau otros recursos, o consuman menos
energa.
OPTIMIZACION
La palabra "optimizacin", comparte la misma raz que
"ptimo", es raro que el proceso de optimizacin produzca
un sistema verdaderamente ptimo. El sistema optimizado
tpicamente slo ser ptimo en una aplicacin o para una
audiencia. Se podra reducir la cantidad de tiempo que un
programa se toma para realizar alguna tarea logrando que
consuma ms memoria. En una aplicacin donde el espacio
de la memoria es un bien escaso, se podra elegir
unalgoritmoms lento con el fin de utilizar menos
memoria
OPTIMIZACION
Se realiza despus de la generacin de cdigo de
todo el programa o de un elemento ejecutable del
programa (funcin, procedimiento, etc).
Objetivo de la Optimizacin
Obtener cdigo que se ejecuta ms
eficientemente segn los criterios
Tiempo de ejecucin (optimizacin temporal)
Espacio de memoria utilizado (optimizacin
espacial)
FUNCIONAMIENTO
Revisa el cdigo generado a varios niveles de
abstraccin y realiza las optimizaciones aplicables al
nivel de abstraccin
Representaciones de cdigo intermedio de ms a
menos abstractas
rbol sintctico abstracto: optimizar
subexpresiones redundantes, reduccin de
frecuencia, etc.
Tuplas o cuadruplas: optimizar en uso de los
registros o de las variables temporales.
Ensamblador/Cdigo mquina: convertir saltos a
FUNCIONAMIENTO
Revisa el cdigo generado a varios niveles de abstraccin
y realiza las optimizaciones aplicables al nivel de
abstraccin
Representaciones de cdigo intermedio de ms a menos
abstractas
rbol sintctico abstracto: optimizar subexpresiones
redundantes, reduccin de frecuencia, etc.
Tuplas o cuadruplas: optimizar en uso de los registros
o de las variables temporales.
Ensamblador/Cdigo mquina: convertir saltos a
saltos
cortos, reordenar instrucciones
Representaciones de cdigo para extraer informacin:
Trade-Offs
La optimizacin general se centra en la mejora de
uno o dos aspectos del rendimiento: el tiempo de
ejecucin, uso de memoria, espacio en disco, ancho
de banda, el consumo de energa o algn otro
recurso. Para ello se requiere un trade-off, donde
uno de los factores se optimiza a expensas de los
dems. Por ejemplo, aumentar el tamao de cach
mejora el rendimiento del tiempo de ejecucin,
aunque tambin aumenta el consumo de memoria.
Otras ventajas y desventajas comunes incluyen la
claridad del cdigo y la concisin.
Cuellos de botella
La optimizacin puede incluir buscar cuellos de botellas, una
parte critica de cdigo que es la principal consumidora de los
recursos necesarios, a veces conocida comohot-spot.
Enciencias de la computacinelprincipio de Paretose puede
aplicar a la optimizacin de recursos observando que el 80%
de los recursos son tpicamente usados por el 20% de las
operaciones en promedio. Eningeniera de softwarees a
menudo una mejor aproximacin decir que el 90% del tiempo
de ejecucin de un programa se gasta en ejecutar el 10% del
cdigo (conocido como la ley 90/10 en este contexto).
Niveles de optimizacin
Niveles de optimizacin
Niveles de optimizacin
Niveles de optimizacin
Niveles de optimizacin
Niveles de optimizacin
Tiempo
de
ejecucin:
Los
compiladoresjust-intimey
los
programadores de ensamblador pueden ser
capaz de realizar la optimizacin en tiempo
de ejecucin exdiendo la capacidad de los
compiladores
estticos,
ajustando
dinmicamente los parmetros de acuerdo
con la entrada actual u otros factores.
Cundo optimizar