Pregunta

preferiblemente de repositorios de Ubuntu.

¿Fue útil?

Solución

Otros han mencionado Oprofile ; para el sistema completo de perfiles estadísticos sobre las instalaciones modernas de Linux, lo hace de hecho roca.

La herramienta más venerable (que no requiere soporte del núcleo y por lo tanto va a funcionar en las versiones antiguas de Linux o incluso sistemas operativos no Linux) es GNU gprof , incluido en binutils (y por lo tanto, sin duda, ya instalado en su entorno de desarrollo).

Para usar gprof, simplemente compilar su aplicación con el argumento de que -pg gcc; un archivo llamado gmon.out se creará después de que sus salidas del programa y <=> puede ser utilizado para analizar este archivo.

Otros consejos

Una técnica simple pero eficaz es ejecutar el programa bajo GDB y manejar la señal SIGINT. Mientras que el programa se está ejecutando, generar SIGINT manualmente escribiendo Ctrl + C o lo que sea, y si bien se detiene, grabar la pila de llamadas. Haga esto varias veces, como 10 o 20, mientras que el programa está siendo subjetivamente lento. Esto le dará una muy buena idea de dónde va el tiempo.

Este método no le da tiempo preciso, pero sí localizar con precisión las instrucciones, incluyendo instrucciones de la llamada, que cuestan la mayor parte del tiempo.

¿Cómo Perfil I C ++ código que se ejecuta en Linux?

Sysprof es un buen perfilador, similar a Oprofile (también tiene una interfaz gráfica de usuario GTK). que está disponible en el repositorio de Ubuntu. Es un generador de perfiles nivel del núcleo, lo que requiere un módulo del núcleo a diferencia gprof, sin embargo, también a diferencia de gprof, puede crear perfiles de aplicaciones multiproceso.

Hay Oprofile . No es tan difícil de usar, pero es un poco buggy.

He tenido buen éxito con oprofile ( http://oprofile.sourceforge.net/news/ ) que está disponible en los repositorios de Ubuntu también. No requiere recompilación, y no tiene ningún tipo de limitaciones con respecto a los objetos compartidos o similares.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top