Based on: Timing and Profiling - Exercises by Charles Severance, Kevin Dowd
Perfile el siguiente programa usando gprof. ¿Hay alguna forma de decir cuánto del tiempo gastado en la rutina c se debe a llamadas recursivas?
main()
{
int i, n=10;
for (i=0; i<1000; i++) {
c(n);
a(n);
}
}
c(n)
int n;
{
if (n > 0) {
a(n-1);
c(n-1);
}
}
a(n)
int n;
{
c(n);
}
Perfile un código ingenieril (que haga uso intensivo de números de punto flotante) con la optimización completa activa y no activa. ¿Cómo cambia el perfil? ¿Puede explicar por qué?
Escriba un programa para determinar la sobrecarga que representa invocar a getrusage y etime. Aparte del tiempo de procesador que consumen, ¿cómo altera el rendimiento de la aplicación, el hecho de invocar demasiado a menudo una llamada al sistema para cronometraje?