Professional Documents
Culture Documents
Las herramientas de análisis de rendimiento se utilizan para permitir el ajuste de código. Las
herramientas de análisis de rendimiento más comunes son las herramientas de perfilado. Una
herramienta de perfiles de ejecución supervisa el código mientras se ejecuta y registra cuántas
veces se ejecuta cada instrucción o cuánto tiempo pasa el programa en cada instrucción.
Perfilar el código mientras se está ejecutando proporciona una idea de cómo funciona el
programa, dónde están los puntos calientes y dónde los desarrolladores deben enfocar los
esfuerzos de ajuste de código.
La división del programa implica el cálculo del conjunto de declaraciones del programa (es
decir, la sección del programa) que puede afectar los valores de las variables especificadas en
algún punto de interés, lo que se conoce como un criterio de división. La segmentación del
programa se puede usar para localizar la fuente de errores, la comprensión del programa y el
análisis de optimización. Las herramientas de división de programas calculan los segmentos de
programas para varios lenguajes de programación utilizando métodos de análisis estáticos o
dinámicos.
Los usuarios están más interesados en las características tangibles del programa que en la
calidad del código. A veces, los usuarios están interesados en el rendimiento en bruto, pero
solo cuando afecta a su trabajo. Los usuarios tienden a estar más interesados en el
rendimiento del programa que en el rendimiento en bruto. La entrega de software a tiempo, la
provisión de una interfaz de usuario limpia y la evitación del tiempo de inactividad suelen ser
más importantes.
Una vez que haya elegido la eficiencia como una prioridad, ya sea que se ponga énfasis en la
velocidad o en el tamaño, debe considerar varias opciones antes de elegir mejorar la velocidad
o el tamaño en el nivel de código. Piense en la eficiencia desde cada uno de estos puntos de
vista:
Requisitos del programa
Diseño del programa
Diseño de clase y rutina
Interacciones del sistema operativo
Compilación de código
Hardware
Ajuste de código
El diseño del programa incluye los principales trazos del diseño para un solo programa,
principalmente la forma en que un programa se divide en clases. Algunos diseños de
programas hacen que sea difícil escribir un sistema de alto rendimiento. Otros hacen difícil no
hacerlo.
El diseño de los aspectos internos de las clases y las rutinas presenta otra oportunidad para
diseñar para el rendimiento. Una clave de rendimiento que entra en juego a este nivel es la
elección de los tipos de datos y los algoritmos, que generalmente afectan el uso de la memoria
del programa y la velocidad de ejecución. Este es el nivel en el que puede elegir quicksort en
lugar de bubblesort o una búsqueda binaria en lugar de una búsqueda lineal.
Los buenos compiladores convierten el código de lenguaje claro y de alto nivel en un código de
máquina optimizado. Si elige el compilador correcto, es posible que no necesite pensar más en
optimizar la velocidad.
Los resultados de optimización informados en el Capítulo 26 proporcionan numerosos
ejemplos de optimizaciones de compiladores que producen un código más eficiente que el
ajuste manual de códigos.
4.1.2.6. Hardware
Debe seguir los siguientes pasos al considerar si la optimización del código puede ayudarlo a
mejorar el rendimiento de un programa:
Desarrolle el software utilizando un código bien diseñado que sea fácil de entender y
modificar.
Si el rendimiento es pobre:
a. Guarde una versión de trabajo del código para que pueda volver al "último estado
bueno".
f . Si una mejora no mejora el código, vuelva al código guardado en el paso (a). (Por lo
general, más de la mitad de los intentos de ajuste producirán solo una mejora
insignificante en el rendimiento o degradarán el rendimiento).
En otras formas, los problemas de rendimiento apenas han cambiado. Las personas que
escriben aplicaciones de escritorio pueden no necesitar esta información, pero las personas
que escriben software para sistemas integrados, sistemas en tiempo real y otros sistemas con
estrictas restricciones de velocidad o espacio pueden beneficiarse de ello.
La necesidad de medir el impacto de cada intento de ajuste de código ha sido una constante
desde que Donald Knuth publicó su estudio de los programas Fortran en 1971.