Gprof: Profiling aplicado a optimización de tiempo de ejecución

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.

Ley de Amdahl

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.

Posted By dsuarez

David nació en Las Palmas de Gran Canaria, España. Estudió Ingeniería en Informática en la Universidad de Las Palmas de Gran Canaria (ULPGC), donde ha trabajado en investigación los últimos años. Siempre ha sentido una gran curiosidad por los ordenadores y las ciencias, y más recientemente en el mundo empresarial. Ha trabajado como programador/analista, consultor en tecnologías de la información y obtuvo la beca de Google Summer of Code en 2006. Es socio fundador de Wantudu (http://wantudu.es), empresa especializada en terminales táctiles para hoteles.

Leave a Reply