2010-03-04 21 views
8

Me gustaría poder ver qué tan "caro" cada subproceso de mi aplicación usa callgrind. Hice un perfil con la opción --separate-thread=yes que le da un archivo callgrind para toda la aplicación y luego uno por subproceso.Usando callgrind/kcachegrind para obtener estadísticas por subproceso

Esto es útil para ver el perfil de cualquier hilo dado, pero lo que realmente quiero es solo una lista ordenada de tiempo de CPU de cada hilo para poder ver qué hilos son los más grandes.

Respuesta

3

Valgrind/Callgrind no permite este comportamiento. Ni kcachegrind lo hace, pero creo que será una buena mejora. Tal vez algunas respuestas se pueden encontrar en su lista de correo.

Un trabajo muy aburrido, pero forma podría ser la opción --separate-thread=no de usar, y actualizar el código a utilizar para cada hilo de un nombre de función diferente o nombre de la clase. Según la complejidad de su código, podría ser la respuesta (utilizando 1computeData(), 2computeData(), ...)

+0

Sí, esta es casi la misma conclusión a la que he llegado. ¡Adivina que es una buena idea para una contribución de código abierto! –

-2

Simplemente abra varios perfiles en kcachegrind al mismo tiempo.

Cuestiones relacionadas