Optimización de Software: Técnicas, Niveles y Rendimiento
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 3,04 KB
Optimización de Software
La optimización es una rama de la ingeniería de software que trata de convertir programas existentes en otros que realicen las mismas tareas empleando recursos de forma óptima (memoria, tiempo de ejecución). Se realiza reestructurando el código de tal forma que el nuevo resultado ofrezca mayores beneficios.
La optimización se realiza después de la generación de código de todo el programa o de un elemento ejecutable. Se debe dejar este proceso hasta el final, ya que la optimización prematura puede introducir nuevos errores.
Funcionamiento
Revisa el código generado a varios niveles de abstracción y realiza las optimizaciones aplicables a cada nivel.
Tipos de Optimización
- Optimización local: Se realiza sobre módulos del programa a través de funciones, métodos, procedimientos, clases, etc.
- Optimización de ciclos: Trata de encontrar elementos que no deben repetirse en un ciclo; otro uso es el mejoramiento de consultas en SQL.
- Globales: Se dan con respecto a todo el código; es más lenta, pero mejora el desempeño general de todo el programa.
- De mirilla: Trata de estructurar de manera eficiente el flujo del programa.
Costos y Criterios
- Costos: Son el factor más importante a tomar en cuenta a la hora de optimizar.
- Costos de ejecución: Son aquellos que vienen implícitos al ejecutar el programa.
- Criterios para mejorar el código: Hacer ver a los programadores que optimicen su código desde el inicio.
Herramientas para el Flujo de Datos
Se utilizan principalmente depuradores y desensambladores.
Arquitectura y Lenguaje Ensamblador
Características del Lenguaje Máquina
Realiza un conjunto de operaciones predeterminadas llamadas microoperaciones: +, -, /, AND, OR, NOT.
Direccionamiento
Es la forma en como se accede a la memoria, la cual depende del microprocesador:
- Directo: También recibe el nombre de absoluto; el acceso a las direcciones es directo.
- Indirecto: También se le conoce como relativo y se basa a partir de una dirección genérica.
Lenguaje Ensamblador
Es el traductor de código de bajo nivel a un código ejecutable directamente por la máquina que se ha generado.
- Ensambladores básicos: Son de muy bajo nivel; consisten en ofrecer nombres simbólicos a las distintas instrucciones.
- Ensambladores modulares: Una macroinstrucción equivale a una función en un lenguaje de alto nivel.
Registros y Distribución
- Registros: Son la memoria principal de la PC; existen acumuladores, puntero de instrucción y de pila.
- Distribución: Proceso en el cual el programa generado puede ejecutarse en otras máquinas.