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. Las optimizaciones locales se realizan sobre el bloque básico
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; …; }
Detecta las operaciones invariantes de bucle y las calcula una única vez delante del bucle.
Consiste en sustituir productos entre variables inductivas e invariantes de bucle por sumas.
La optimización global consiste en encontrar los mejores conjuntos de parámetros que optimizan una función objetivo dada. sólo se pueden dar condiciones de optimalidad global bajo ciertas restricciones (función objetivo convexa y región factible también convexa). Esto hace muy difícil resolver exactamente los problemas de optimización global.
Características
Objetivos
Si no se ha definido el orden de evaluación de los operandos la siguiente optimización es válida.
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
Los dispositivos moviles tiene capacidades mas limitadas que un dispositivo de computo convencional, razon por la cual el mejor uso de recursos de hardware influye notoriamente en su rendimiento. El hardware que utiliza es inferior a los equipos actuales de computadoras, por lo cual se debe optimizar lo mas posible las aplicaciones que se desarrollen para este tipo de plataformas.
Registros
Los registros del procesador se emplean para controlar instrucciones en ejecucion, manejar direccionamiento de memoria y proporcionar capacidad aitmetica. Los registros son espacios fisicos dentro del micropocesador con capacida de 4 bits hasta 64 bits dependiendo del microprocesador que se emplee.
La pila
La asignación de memoria de variables locales se hace de una forma flexible, atendiendo al hecho de que solamente necesitan memoria asignada desde el momento que comienza la ejecución de la función hasta el momento en que ésta finaliza.
Memoria estatica
La forma más sencilla de almacenar el contenido de una variable en memoria, en tiempo de ejecución, es hacerlo en la memoria estática. Así, el almacenamiento de dichas variables será permanente (durante la ejecución del programa).