40 likes | 175 Views
Sobre medición del desempeño de programas y depuración (debugging). Agustín J. González ELO-320. Introducción. ¿Dónde aplicar EDA?, ¿a todo programa? Debemos escribir programas ante todo que sean claros y entendibles. Luego debemos preocuparnos de su eficiencia en términos de tiempo/espacio.
E N D
Sobre medición del desempeño de programas y depuración (debugging) Agustín J. González ELO-320
Introducción • ¿Dónde aplicar EDA?, ¿a todo programa? • Debemos escribir programas ante todo que sean claros y entendibles. Luego debemos preocuparnos de su eficiencia en términos de tiempo/espacio. • ¿Cómo saber qué partes mejorar? • Hacer estudio de perfil de ejecución.
Perfiles de ejecución • El estudio de perfiles (profiling) es la respuesta. • Existen herramientas para ello, la más simple la da el compilador. • gcc -pg es la opción con que debemos compilar. • Ver tarea de Carolina Canivilo • Luego ejecutamos el programa, se genera un archivo gmont.out • Luego se ejecuta gprof programa /* y obtendremos estadística */ • Para aprender más sobre esto, ver página man de gprof y explicación de opción -pg. • Hay programas comerciales que usan gprof “por debajo”.
Herramienta de depuración (debugging) • gdb es un debugger muy básico pero puede sacar de apuro. • El programa se debe compilar con la opción -g (ver explicación en man gcc, por ejemplo) • Luego se ejecuta gdb (ver uso de comandos en línea en man gdb). • Ver ejemplo de ejecución. • matrix.c • Un programa mejor es ddd (Linux) el cual usa gdb para hacer las tareas pero proporciona una interfaz gráfica mucho más amistosa.