View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Profiling en Linux usando "perf" (ver qué funciones están gastando el timpo de CPU)

Fuente: 1, 2

Es una utilidad con la que, si has compilado tus fuentes con -fno-omit-frame-pointer, hace un sampling cada "n" ms de en qué función está tu programa, y luego te da un informe de qué funciones son las que usan más tiempo de ejecución.

Preparación

1. Asegurarse que la versión del núcleo de Linux es mayor o igual a 2.6.32 (para versiones anteriores hay que usar un programa diferente, el "oprofile").

2. Hay que modificar el Makefile para que el compilador, en vez de ser "gcc", sea
 gcc -fno-omit-frame-pointer

3. Borar los .o antiguos y recompilar para que todos los objetos estén generados con la opción que le hemos puesto al gcc

Uso

(Poniendo el pid en el sitio se se indica)

 sudo perf top -p <PID_DE_MI_PROGRAMA> -K

NOTA: El perf está instalado en FrontPCI02; para otros equipos habría que instalarlo.