A veces denominado elaboración de perfiles, el análisis de rendimiento en lo que se refiere a la ingeniería de software es simplemente el proceso de evaluar cómo está funcionando un programa de software en particular. Este proceso normalmente comienza con la forma en que se carga el programa y lo que sucede cuando se ejecuta cada paso en el uso del programa. El objeto del análisis de rendimiento es garantizar que el programa de software esté funcionando con una eficiencia óptima e identificar y corregir cualquier problema que pueda afectar negativamente esa eficiencia.
El análisis de rendimiento también ayuda al ingeniero a ajustar los componentes de una manera que ayude al programa a hacer el mejor uso de los recursos disponibles. Al evaluar las ejecuciones en tiempo real, es posible determinar si se puede hacer algo para acelerar una tarea o cambiar la cantidad de memoria necesaria para ejecutar la tarea sin afectar negativamente la función general del software. El objetivo final es un programa que se ejecute sin problemas, rápidamente y que funcione cada vez que se inicia una tarea.
El análisis de rendimiento es un tipo de análisis de programa dinámico o DPA. DPA se centra en lo que sucede cuando un programa se está ejecutando activamente, incluido cómo se utilizan los recursos y en qué orden. Esto es diferente del análisis de código estático, que tiende a centrarse más en cómo se escribe el código y qué tan lógica resulta la sucesión de comandos. Sin embargo, ambos tipos de análisis son elementos comunes para evaluar y perfeccionar el software y la funcionalidad del software.
La historia del análisis de programas se remonta a los primeros años de la informática. Durante el desarrollo de los primeros «cerebros electrónicos» de la década de 1940, se implementaron varios métodos para probar la eficiencia de cada función que un sistema dado era capaz de realizar. A medida que la tecnología siguió avanzando, la metodología para evaluar el nivel de rendimiento del software que se ejecuta en varios sistemas se perfeccionó y se estandarizó un poco. En la actualidad, los arquitectos de sistemas y los redactores de programas de software utilizan el análisis de programas para identificar las fortalezas y debilidades inherentes a una versión determinada de un programa y crear soluciones para cualquier problema. Los datos recopilados por el análisis de rendimiento ayudan a evitar que esos mismos problemas aparezcan en versiones posteriores del programa.
El proceso real de análisis de rendimiento aún puede lograrse mediante revisión manual durante la operación activa de un programa, o completarse automáticamente compilando datos usando un generador de perfiles automatizado. En ambos casos, se captura información que permite tanto a un escritor de software como a un arquitecto de sistemas determinar qué se debe hacer para que el programa funcione con la máxima eficiencia en un sistema o red determinados. El análisis de desempeño no es una tarea que se realiza una vez y luego se considera terminada. No es inusual que los administradores de sistemas ejecuten un análisis de rendimiento de forma periódica, ya que las actualizaciones de otros programas, así como los cambios de hardware, posiblemente podrían afectar la eficiencia del programa que se somete al análisis.