Necesito un gráfico dinámico de llamadas para mi aplicación. Lo ejecuto con la herramienta callgrind
(valgrind
suite) y obtuve el archivo callgrind.out.xxxxx
. Ahora, quiero hacer una representación gráfica de esta información. KCacheGrind
no me ayuda mucho porque dibuja una parte limitada del gráfico (dibuja ~ 50 funciones en lugar de ~ 1500 perfil y no sé cómo solucionarlo). ¿Cómo puedo obtener una imagen gráfica donde se dibujarán todas las funciones?Interpretación de datos callgrind
Respuesta
Ok, he encontrado el camino. El archivo callgrind.out
generado se puede convertir al archivo dot
utilizando gprof2dot (sí, esta herramienta también puede analizar archivos callgrind
). Y entonces se puede obtener la imagen gráfica usando dot -T<type> dotfile.dot -o graphfile.<type>
Interesante. ¿El gráfico generado es legible para 1500 funciones? –
El acuerdo es que en realidad necesito comparar dos gráficos de dos versiones diferentes de software, por lo que no hay objetivo de leer/comprender todo el gráfico, solo necesito algunos caminos y sé dónde debo buscarlos. OTOH, la imagen 'png' de generación tarda unos 5 minutos en mi' Core i7-2600 3.4GHz/8 Gb DDR3' y el tamaño del archivo resultante es de 23 MBytes. No todos los visualizadores de imágenes pueden manejarlo de manera rápida y correcta (prueba de esfuerzo perfecta IMO :)) – maverik
se supone que debemos escribir el '-T
Usando el siguiente comando para generar graph.png usando gprof2dot
$./gprof2dot.py --format=callgrind --output=out.dot /tmp/cachegrind.out.1360843301.16101
$dot -Tpng out.dot -o graph.png
- 1. Interpretación de datos WAV
- 2. Interpretación FFT
- 3. Interpretación de fecha inteligente
- 4. Descifrar y despachar la interpretación frente a Interpretación roscada
- 5. Interpretación de salida de salida
- 6. Interpretación de capacidades de ScanResult
- 7. Interpretación del mensaje java.lang.NoSuchMethodError
- 8. KCachegrind interpretación confusión
- 9. callgrind lento con la instrumentación desactivada
- 10. jmeter - oyente interpretación de resultados
- 11. ambigüedad en la interpretación de parámetros opcionales
- 12. PHP Interpretación del gráfico xDebug
- 13. C++ eclipse error error interpretación
- 14. OpenGL - Interpretación en una textura
- 15. ¿Cómo obtengo callgrind para volcar información de línea de origen?
- 16. Explorador de resultados de Windows Callgrind, alternativa a KCacheGrind
- 17. Interpretación de salida de --ptxas-options = -v
- 18. Ejemplos de implementación breve de interpretación abstracta
- 19. Pilas de interpretación en Minivolcados de Windows
- 20. Cómo entender la salida de callgrind usando Kcachegrind
- 21. Interpretación de líneas nuevas con xsl: texto?
- 22. Firefox: ¿interpretación errónea del modelo de caja?
- 23. C++ typedef interpretación de punteros const
- 24. ¿Interpretación de JavaScript fuera del navegador?
- 25. Usando callgrind/kcachegrind para obtener estadísticas por subproceso
- 26. Lectura e interpretación de los datos de un archivo binario en Python
- 27. necesita la ayuda en la producción Callgrind lectura
- 28. Interpretación de códigos de tipo en sys.objects en SQL Server
- 29. Interpretación de campos decimales compactos COMP-3 en valores numéricos
- 30. XPath interpretación por Selenium/WebDriver manejando IE
¿El callgrind.out contienen datos que falta en la gráfica? Además, si ordena por "sí mismo", ¿queda tiempo/instrucciones relevantes que se gastan en funciones que no figuran? No puedo recordar un caso en el que las partes relevantes quedaron fuera. –
Sí, callgrind.out contiene todos los datos que necesito (incluidas las funciones que faltan en el gráfico) y la mayoría de las funciones que no están enumeradas en el gráfico tienen tiempo/instrucciones relevantes gastados. No sé por qué 'KCacheGrind' dibuja solo una parte. UPD: si elijo la función que quiero en la lista de funciones (colocada a la izquierda en el diseño predeterminado de 'KCacheGrind'), el gráfico se vuelve a dibujar para mostrar estas funciones, pero todavía faltan otras. Necesito el gráfico completo a la vez. Gracias por adelantado. – maverik