optimizacion de codigo

Páginas: 6 (1315 palabras) Publicado: 21 de agosto de 2013
Optimización de código

1

Optimización de Código. Procesadores de Lenguaje II

Optimización de Código
Introducción, criterios
Tipos: independiente/dependiente, local/global
Optimización independiente de la máquina
Transformaciones del código
Análisis de flujo de control
Tratamiento de bucles
Introducción al análisis de flujo de datos y optimización
global

Optimizacióndependiente de la máquina
Optimización de mirilla
Asignación de registros
2

1

Optimización de Código. Procesadores de Lenguaje II

Optimización de Código
Fase cara y difícil
Hay que establecer criterios para que no sea más
costosa que la propia ejecución (aunque puede
justificarse si se va a ejecutar el mismo programa
muchas veces)
Criterios para las transformaciones
Lastransformaciones deben preservar el significado de los
programas
Una transformación debe acelerar los programas en una
cantidad mensurable
Una transformación debe valer la pena
3

Optimización de Código. Procesadores de Lenguaje II

Optimización de Código
Obtener código que se ejecuta mas
eficientemente según los criterios de:
Tiempo de ejecución (optimización temporal)
Espacio de memoria utilizado(optimización espacial)

¿Dónde?
¿Cómo?
¿Cuánto?

4

2

Optimización de Código. Procesadores de Lenguaje II

Generación de código y optimización
¿Dónde?
Generación de código
Mientras se analiza el programa
“Libre del contexto”

Optimización de código
Después de la generación de código de todo el programa o de
un elemento ejecutable de este (función, procedimiento, etc.)“Dependiente del contexto”

Regla 90/10
En general el 90% del tiempo de ejecución de un programa es
consumido por el 10% del código
La optimización debe ser aplicada sobre ese 10%. Estimación
“conservadora” del comportamiento del programa
5

Optimización de Código. Procesadores de Lenguaje II

Funcionamiento
¿Cómo?
Revisa el código generado a varios niveles de abstracción y aplicatransformaciones según nivel de abstracción
Representaciones de código intermedio de más a menos abstractas
Árbol sintáctico abstracto
Optimizar subexpresiones redundantes, eliminar código inalcanzable,
reducción de coste, etc.

Tuplas o cuadruplas
Optimizar el uso de registros o de las variables temporales

Ensamblador/Código máquina
Convertir saltos a saltos cortos
Reordenar instruccionesde código máquina
Utilizar instrucciones específicas

Utilización de estructuras de datos ad hoc
Grafos de flujo de ejecución, gráficos dirigidos acíclicos
6

3

Optimización de Código. Procesadores de Lenguaje II

Reglas de oro de la optimización
¿Cuánto?
“La optimización prematura es la raíz de todo mal”
Donald Knuth
Puede introducir errores nuevos y sutiles
Hace el código másdifícil de entender y mantener

Regla de oro
Mantener el código correcto, después si es realmente
necesario entonces optimizarlo

La mejor y más importante forma de optimizar un
programa es usando buenos algoritmos
Por ejemplo: O(n*log) en lugar de O(n2)
Cuidado: la complejidad asintótica no siempre es una métrica
adecuada.
7

Optimización de Código. Procesadores de Lenguaje IITipos de optimización
Momento de la compilación

Independiente de máquina

Transformaciones en código intermedio: Reducción de coste, expresiones
comunes, propagación de constantes, …

Dependiente de máquina

Asignación de registros
Ordenación/selección de instrucciones

Área del programa donde se aplica
1. Local

Reducción de potencia
Folding
Propagación de constantes

2.Global

Análisis del grafo del flujo de control. Bucles
Reducción de frecuencia y potencia

Análisis del grafo del flujo de datos. Extensión de transformaciones

3. Interprocedural
La mayoría de compiladores hacen (1), muchos (2) y pocos (3)

8

4

Optimización de Código. Procesadores de Lenguaje II

Fases de la optimización

Cambiar Algoritmos
Mejorar bucles
Hacer perfiles de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Optimizacion de codigo
  • Optimizacion de Codigo
  • Optimizacion Codigo
  • optimizacion de codigo
  • Optimización de codigo intermedio
  • Optimizacion de codigo 1
  • Tipos de optimización de codigo
  • Importancia De La Optimización Del Codigo Php

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS