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.

Entradas relacionadas: