Necesito perfilar algún código que ejecute C++ en Linux. ¿Pueden ustedes recomendar algunos perfiladores?¿Qué es un perfilador fácil de usar para C++ en Linux?
Respuesta
valgrind Linux es un perfilador bien conocido
pensamiento valgrind fue más para la pérdida de memoria comprobando ... Estoy intentando ver qué funciones se están llamando, etc. – shergill
use la herramienta de la suite llamada "callgrind" – dfa
Valgrind es simplemente un marco para crear herramientas dinámicas. Sin embargo, se ha convertido en sinónimo de Memcheck, una herramienta construida en Valgrind.Callgrind es bastante bueno en perfilador. – Falaina
Soy un fan de Oprofile. Se trata de instalar un módulo kernel y tiene un poco de curva de aprendizaje, pero es bastante potente y funciona muy bien para programas/programas optimizados sin símbolos de depuración.
Vtune es otro perfilador muy potente fabricado por Intel. Creo que la versión de Linux es gratuita para software no comercial.
También está el conjunto de herramientas Valgrind propuesto por dfa. Probablemente, Callgrind sea lo que más le interese. Cachegrind (cuyo featureet es un subconjunto de Callgrind) y Massif también son interesantes, pero no tengo experiencia con este último.
+1 para oprofile, esa no es una "herramienta fácil" – dfa
Haha, cierto. Probablemente no debería hacer ese sonido tan fácil :) Ciertamente no es tan simple como "ejecutar el programa debajo de él" como las herramientas de Vtune y Valgrind, pero siento que te acostumbras bastante rápido. – Falaina
oprofile se ve interesante - ¿es compatible con x86_64? – LiraNuna
gprof es la herramienta estándar de gnu para crear perfiles.
Google también tiene un buen generador de perfiles como parte del google-perftools - que se incluyen en Debian/Ubuntu y posiblemente en otras distros.
Eche un vistazo a KCacheGrind que es una interfaz gráfica para valgrind y lo hace realmente fácil de usar.
Utilice gprof.
Simplemente compile con -pg
marca (creo (pero no estoy seguro) tiene que cambiar de optimizaciones) y use gprof para analizar el archivo gmon.out que su ejecutable producirá.
por ejemplo:
gcc -pg -o whatever whatever.c
./whatever
gprof whatever gmon.out
Lo mismo con g ++ y CPP.
Crear un perfil de código no optimizado es un poco inútil, ¿no? Del mismo modo, el código de perfil que ha sido muy modificado con -pg a menudo lo engaña para optimizar los puntos equivocados. – federal
Zoom desde RotateRight (http://www.rotateright.com) es lo que he estado usando. Tiene una vista de mariposa de las funciones y puede hacer doble clic en cualquier función para sumergirse en el código fuente o en el código ASM. Cree con información de depuración (-g) para ver su fuente, pero aún debe compilar y crear un perfil optimizado como código.
¡Le di una oportunidad a este programa, es realmente agradable! Actualmente mi perfil favorito en Linux; Sin embargo, vale la pena mencionar que requiere que el código se construya con '-fno-omit-frame-pointer' para un perfil efectivo. –
El enlace parece muerto. ¿Alguien sabe dónde (o si) se puede encontrar en otro lugar? –
Eche un vistazo a Sysprof. Su distribución probablemente ya esté disponible.
Tenga en cuenta que todos los perfiladores mencionados funcionan mejor si su aplicación está compilada con punteros de marco. Es decir, debe usar -fno-omit-frame-pointer en la línea de comando de gcc.
- 1. ¿cómo funciona un perfilador C#?
- 2. Buen perfilador de C++ para GCC
- 3. perfilador de microsegundos para el código C
- 4. ¿Qué idioma es más fácil para desarrollar línea de comandos/GUI simple para Linux?
- 5. Perfilador decente para Windows?
- 6. ¿Hay un perfilador visual para Python?
- 7. Buscando un perfilador de C++ de bajo impacto
- 8. ¿Biblioteca de cliente SNMP fácil de usar para C++?
- 9. ¿Hay un perfilador de memoria para python2.7?
- 10. ¿Cuál es el equivalente de C++ para AutoResetEvent en Linux?
- 11. Biblioteca de dibujo fácil de usar en c/C++?
- 12. qué biblioteca c/C++ se puede usar para manejar conexiones wifi para Linux?
- 13. ¿hay un perfilador CLR para .NET 4.0?
- 14. ¿Qué tan fácil es configurar un CMS en appharbor
- 15. ¿Qué es un inodo anónimo en Linux?
- 16. Cómo usar Python's "easy_install" en Windows ... no es tan fácil
- 17. ¿Hay algún perfilador decente de C#?
- 18. ¿Qué técnica de Linux IPC usar?
- 19. Hacer errores de MySQL atrapados en C# fácil de usar
- 20. Soporte de expresión regular fácil de usar en C++?
- 21. ¿Cómo usar yaml-cpp en un programa C++ en Linux?
- 22. Perfilador de memoria para .NET Compact Framework
- 23. ¿Cuál es la forma más fácil de usar el código fuente C en una aplicación Java?
- 24. ¿Qué biblioteca de hilos debo usar para programas multiproceso C en Linux?
- 25. ¿Qué archivo de cabecera incluye para usar bool type en c en linux?
- 26. C++: ¿qué es :: para?
- 27. ¿Qué es la utilidad de Linux para modificar un nombre de símbolo de C++?
- 28. manera fácil de usar FindControl ("")
- 29. ¿Es posible usar xcodebuild en Linux?
- 30. ¿Qué biblioteca C++ usar para escribir un servicio/daemon multiplataforma?
Debe agregar etiquetas Linux y C++. Probablemente obtendrá una mejor respuesta y rango de opiniones. – Duck
Parece un duplicado de http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux. –
por ejemplo: likwid, LLTng, oprofile, valgrind, vtune, gprof, perf, gperftools, pTop – Shan