Sobre medición del desempeño de programas y depuración (debugging)

4
1 Sobre medición del desempeño de programas y depuración (debugging) Agustín J. González ELO-320

description

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. - PowerPoint PPT Presentation

Transcript of Sobre medición del desempeño de programas y depuración (debugging)

Page 1: Sobre medición del desempeño de programas y depuración (debugging)

1

Sobre medición del desempeño de programas y depuración (debugging)

Agustín J. GonzálezELO-320

Page 2: Sobre medición del desempeño de programas y depuración (debugging)

2

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.

Page 3: Sobre medición del desempeño de programas y depuración (debugging)

3

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”.

Page 4: Sobre medición del desempeño de programas y depuración (debugging)

4

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.