Usando Callgrind / kcachegrind para obtener estadísticas por hilo
-
24-09-2019 - |
Pregunta
Me gustaría ser capaz de ver cómo "cara" cada hilo en mi aplicación está utilizando Callgrind. Yo perfilan con la opción --separate-thread=yes
que le da un archivo Callgrind para toda la aplicación y luego una por-hilo.
Esto es útil para ver el perfil de cualquier tema dado, pero lo que realmente quiero es sólo una lista ordenada de tiempo de CPU de cada hilo para que pueda ver que temas son los más grandes de los cerdos.
Solución
Valgrind / Callgrind no permite este comportamiento. Ni kcachegrind hace, pero creo que va a ser una buena mejora. Tal vez algunas respuestas se podían encontrar en su lista de correo.
Un trabajo pero muy aburrido forma podría ser la opción de uso --separate-thread=no
, y actualizar el código para utilizar para cada hilo un diferente nombre de la función o una clase de nombre. Dependiendo de su complejidad del código, podría ser la respuesta (utilizando 1computeData (), 2computeData (), ..)
Otros consejos
Sólo tiene que abrir varios perfiles en kcachegrind al mismo tiempo.