Gprof: Profiling aplicado a optimización de tiempo de ejecución
- 9 October, 2006 //
- informática, pfc //
- Tags :
- 0 Comments
Gprof es una herramienta de profiling. El profiling consiste en registrar información sobre un programa durante su ejecución. Algunos de los datos interesantes que se pueden extraer son:
- Tiempo consumido en cada función y número de llamadas a la función.
- Grafo de llamadas a funciones, con lo que se puede determinar que funciones llaman a cuales otras.
- Número de veces que se ejecuta cada línea del programa.
Al optimizar un programa, conviene conocer la Ley de Amdahl que básicamente dice lo siguiente, citado directamente de la Wikipedia: “La mejora obtenida en el rendimiento de un sistema debido a la alteración de uno de sus componentes está limitada por la fracción de tiempo que se utiliza dicho componente”. En la siguiente ecuación, Fm es el tiempo del componente que se mejora, y Am es el factor de mejora del componente. Por ejemplo, Si Am=2 entonces el tiempo empleado para realizar la tarea que tardaba Fm es ahora Fm/2.

Gracias a gprof podemos averiguar cuales son las funciones donde el programa consume la mayor parte del tiempo (se dice que el 80% del tiempo de ejecución se consume en un 20% del código: regla 80/20) y por tanto, aquellas que merece la pena optimizar para mejorar el rendimiento global del programa en cuestión.
En un post futuro publicaré una pequeña guía de utilización. Hasta entonces.