El generador de perfiles GNU estándar, gprof, está disponible para la mayoría de los sistemas similares a Unix. gprof es parte de la cadena de herramientas GNU y fue una de las primeras herramientas de creación de perfiles de código fuente abierto. Combina instrumentación en tiempo de compilación y técnicas de muestreo, utilizando una frecuencia de muestreo de 100 Hz. Tiene la ventaja de que no requiere soporte del kernel.
Para preparar un programa para generar perfiles con gprof, agrega -pg a los indicadores de compilación y enlace, lo que inyecta código que recopila información sobre el árbol de llamadas en el preámbulo de la función. Cuando ejecuta el programa, las muestras se recopilan y almacenan en un búfer, que se escribe en un archivo llamado gmon.out cuando finaliza el programa.
si encuentra el siguiente error al ejecutar el comando gprof:
puede intentar instalar el paquete binutils como se muestra a continuación según su elección de distribución.
Distribución | Comando |
---|---|
OS X | instalación de cerveza binutils |
Debian | apt-get install binutils |
Ubuntu | apt-get install binutils |
Alpino | apk agregar binutils |
Arco Linux | pacman -S binutils |
Kali Linux | apt-get install binutils |
Cent OS | yum instalar binutils |
Fedora | dnf instala binutils |
Raspbian | apt-get install binutils |
gprof muestra los datos de perfil para un archivo de objeto. La tabla de símbolos del archivo se compara con el archivo de perfil del gráfico de llamadas gmon.out (previamente creado al compilar con gcc -pg). Muchas de las opciones de gprof toman un argumento de especificación de símbolo, o symspec, para limitar la opción a archivos o funciones específicos. El symspec puede ser un nombre de archivo, una función o un número de línea. También se puede dar como nombre de archivo:función o nombre de archivo:número de línea para especificar una función o número de línea en un archivo específico. gprof espera que los nombres de archivo contengan un punto y que las funciones no contengan un punto.