Grafo de Llamadas

Cuando tenemos abierto un archivo gprof.xml en la vista de estadísticas y queremos ver el perfil plano, haremos una de las siguientes acciones:

¿Qué podemos ver en el grafo de llamadas?

subsubsec_grafo-llamadas.html

En el grafo de llamadas podremos observar el grafo transformado en un árbol en la zona de la izquierda

. En él podemos ver perfectamente qué funciones llaman cada una de las funciones. Además, cuando marcamos cualquiera de las funciones, el árbol se expandirá para mostrarnos en todos los sitios del árbol donde aparece dicha función.

En la zona de la derecha tenemos una lista desplegable con todas las funciones de la que tenemos información en el grafo. Además, al igual que con el árbol de llamadas, una vez que marquemos una función, se mostrará toda la información de tiempos sobre dicha función y se expandirá el árbol para mostrar en todos los sitios donde aparece.

En las tablas tenemos mucha información. En la tabla superior tenemos información de la propia función elegida o función principal. Es una información muy parecida a la que encontramos en la tabla del perfil plano para esta función. En la primera columna se muestra su nombre; en la segunda, el porcentaje de tiempo relativo gastado en esta función y sus subrutinas con respecto al tiempo total del programa; en la tercera columna, el tiempo en segundos gastado por esta función, sin contar subrutinas; en la cuarta columna, el tiempo en segundos gastado por los hijos de esta función; en la quinta, el número de llamadas total hechas a esta función; en la sexta, el número de llamadas recursivas que se hace esta función; y en la séptima, un número índice para identificar a esta función (en caso de que haya dos funciones con el mismo nombre).

En la segunda tabla tenemos toda la información relevante sobre las funciones padres de esta función. Ésta tabla puede no aparecer si la función principal fuera espontánea o no se tuviera ninguna información sobre sus padres. Por cada fila, tendremos un padre. Y de cada padre tendremos la siguiente información: en la primera columna, su nombre; en la segunda columna, el porcentaje de tiempo estimado, que se gastó en la función principal (e hijos) con respecto al tiempo gastado en la función llamadora; en la tercera columna, una estimación del tiempo que se gastó en la función principal (sin contar hijos), cuando fue llamada por esta función; en la cuarta columna, una estimación del tiempo que se gastó en los hijos de la función principal cuando fue llamada por esta función; en la quinta columna, el número de llamadas a la función principal que realiza esta función; y por último, la última columna, es el índice de esta función que se usa como referencia.

En la tercera tabla tenemos toda la información relevante sobre las funciones hijas de la función principal. Ésta tabla también puede no aparece si la función principal fuera una hoja (no tuviera hijos) o si no se tuviera información alguna sobre sus hijos. Por cada fila, tendremos un hijo. Y de cada hijo tendremos la siguiente información: en la primera columna, su nombre; en la segunda columna, el porcentaje de tiempo estimado, que se gastó en esta función (e hijos) cuando fue llamada por la función principal; en la tercera columna, una estimación del tiempo que se gastó en esta función (sin contar sus hijos) cuando fue llamada por la función principal; en la cuarta columna, una estimación del tiempo que se gastó en los hijos de esta función cuando fue llamada por la función principal; en la quinta columna, el número de llamadas que hizo a esta función la función principal; y para terminar, la sexta columna es el índice de esta función.