3.1 Tipos de Optimizacion


3.1 Tipos de optimización

Dentro de los tipos de optimización se derivan los tipos de optimización local,

optimización de ciclo, optimización global y optimización de mirilla.

3.1.1 Locales

La optimización local se realiza sobre módulos del programa. En la mayoría de las

ocasiones a través de funciones, métodos, procedimientos, clases, etc.

La característica de las optimizaciones locales es que solo se ven reflejados en

dichas secciones.

La optimización local sirve cuando un bloque de programa o sección es crítico por

ejemplo: E/S, la concurrencia, la rapidez y confiabilidad de un conjunto de

instrucciones. Como el espacio de soluciones es más pequeño la optimización

local es más rápida. Como el espacio de soluciones es más pequeño la

optimización local es más rápida.

3.1.2 Ciclos

Los ciclos son una de las partes más esenciales en el rendimiento de un programa

dado que realizan acciones repetitivas, y si dichas acciones están mal realizadas,

el problema se hace N veces más grandes. La mayoría de las optimizaciones

sobre ciclos tratan de encontrar elementos que no deben repetirse en un ciclo.

Sea el ejemplo:

while(a == b) {

 int c = a;

 c = 5;

 …;

}

En este caso es mejor pasar el Int c =a; fuera del ciclo de ser posible.

El problema de la optimización en ciclos y en general radica es que muy difícil

saber el uso exacto de algunas instrucciones. Así que no todo código de proceso

puede ser optimizado. Otros uso de la optimización pueden ser el mejoramiento de

consultas en SQL o en aplicaciones remotas (sockets, E/S, etc.)

3.1.3 Globales

La optimización global se da con respecto a todo el código. Este tipo de

optimización es más lenta pero mejora el desempeño general de todo programa.

Las optimizaciones globales pueden depender de la arquitectura de la máquina.

En algunos casos es mejor mantener variables globales para agilizar los procesos

(el proceso de declarar variables y eliminarlas toma su tiempo) pero consume más

memoria. Algunas optimizaciones incluyen utilizar como variables registros del

CPU, utilizar instrucciones en ensamblador.

3.1.4 De mirilla

La optimización de mirilla trata de estructurar de manera eficiente el flujo del

programa, sobre todo en instrucciones de bifurcación como son las decisiones,

ciclos y saltos de rutinas.

La idea es tener los saltos lo más cerca de las llamadas, siendo el salto lo más

pequeño posible.

Instrucciones de bifurcación

Interrumpen el flujo normal de un programa, es decir que evitan que se ejecute

alguna instrucción del programa y salta a otra parte del programa.

Por ejemplo: el “break”

Switch (expresión que estamos evaluando)

{

Case 1: cout << “Hola” ;

Break;

Case 2: cout << “amigos”;

Break;

}

Comentarios