![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Profiling de un programa usando valgrind/callgrind/kcachegrind (para ver qué partes de un programa son las más lentas y habría que optimizar)(información adicional en este pdf).Suponiendo que el programa esté compilado con "-g" (símbolos para poder depurarlo), se hace lo siguiente: 1. Se ejecuta el programa con el valgrind pidiendo que genere un fichero de profiling (es aún más lento que cuando se usa el valgrind normalmente, sé paciente) valgrind --tool=callgrind ./miprograma 2. Usas el programa utilizando las partes de las que quieres tener información 3. Sales del programa 4. Habrá generado en el directorio actual un fichero con el nombre callgrind.out.nnnnn siendo nnnnn el PID del programa cuando se ejecutó, p.ej. callgrind.out.41820 5 Se abre dicho fichero con el kcachegrind, por ejemplo: kcachegrind callgrind.out.41820 6. En el kcachegrind miras el listdado de funciones y buscas las funciones en las que se pasa más tiempo ("Incl.", incluyendo llamadas a otras funciones, primera columna) y las que pasa más tiempo sin incluir llamadas ("self", la segunda columna). |