hotspot - Interfaz gráfica para Perfiles Linux perf
hotspot (por KDAB) es una interfaz gráfica Qt para el perfilador Linux perf. Grabas con perf record como de costumbre, luego abres el resultado perf.data en hotspot para explorarlo como gráficos de llama interactivos, árboles de llamadas de arriba hacia abajo y abajo hacia arriba, vistas de llamante/llamado, líneas de tiempo por hilo, y análisis fuera-de-CPU. Convierte la salida difícil de leer de perf report en un perfil visual y navegable — e incluso puede lanzar y grabar perf para ti.
Instalación
| Plataforma | Comando |
|---|
| Debian/Ubuntu | sudo apt install hotspot |
| Fedora | sudo dnf install hotspot |
| Arch Linux | sudo pacman -S hotspot |
| AppImage | descargar desde la página GitHub Releases (portátil) |
| Requiere | linux-perf / perf instalado |
# Opción A: grabar con perf, luego abrir en hotspot
perf record --call-graph dwarf -F 999 ./my-program args
hotspot perf.data
# Opción B: dejar que hotspot grabe para ti (pestaña "Record" GUI)
hotspot # elegir el binario, opciones, y golpear Record
| Bandera perf | Propósito |
|---|
--call-graph dwarf | Mejor desenvoltura de pila (necesita info de depuración) |
--call-graph fp | Desenvoltura de puntero de marco (más rápida, necesita -fno-omit-frame-pointer) |
-F 999 | Muestra a 999 Hz |
-p PID | Grabar un proceso en ejecución |
-g | Habilitar gráficos de llamadas |
Vistas
| Vista | Muestra |
|---|
| Resumen | Conteos de muestras, hilos, símbolos más calientes |
| Gráfico de Llama | Pilas agregadas; ancho = tiempo |
| De Arriba hacia Abajo | Árbol de llamadas de raíces a hojas |
| De Abajo hacia Arriba | Funciones hoja caliente y sus llamantes |
| Llamante/Llamado | Costo de entrada/salida por símbolo |
| Línea de Tiempo | Actividad por hilo a lo largo del tiempo |
Navegación
| Acción | Uso |
|---|
| Hacer clic en un marco | Enfocar el gráfico de llama en ese subárbol |
| Búsqueda | Filtrar símbolos por nombre |
| Seleccionar rango de tiempo (línea de tiempo) | Enfocar análisis en una fase |
| Invertir (abajo hacia arriba) | Encontrar funciones hoja caras |
| Filtrar por hilo/proceso | Aislar un trabajador |
Análisis Fuera-de-CPU
hotspot puede visualizar dónde los hilos fueron bloqueados (esperando), no solo quemando CPU — útil para problemas de latencia.
# Grabar cambios de programador para insight fuera-de-CPU
perf record --call-graph dwarf -e cycles \
-e sched:sched_switch --switch-events ./my-program
hotspot perf.data
Obteniendo Buenas Pilas
| Necesidad | Hacer |
|---|
| Símbolos legibles | Compilar con info de depuración (-g), no despojar |
| Pilas profundas | --call-graph dwarf |
| Pilas baratas | Punteros de marco + --call-graph fp |
| Símbolos del kernel | sysctl kernel.kptr_restrict=0, ejecutar perf como root |
| Permisos de perf | sysctl kernel.perf_event_paranoid=1 (o menor) |
Flujos de Trabajo Comunes
# Perfilar un programa ligado a CPU y explorar el gráfico de llama
perf record --call-graph dwarf -F 999 ./app
hotspot perf.data
# Investigar por qué una solicitud es lenta (tiempo de bloqueo/fuera-de-CPU)
perf record --call-graph dwarf -e sched:sched_switch --switch-events ./server
hotspot perf.data # inspeccionar el gráfico de llama fuera-de-CPU
hotspot vs Otros Frontales perf
| Aspecto | hotspot | perf report | Scripts FlameGraph | samply |
|---|
| Interfaz | GUI Qt | TUI/texto | SVG estático | Firefox Profiler |
| Fuera-de-CPU | Sí | Limitado | Manual | Limitado |
| Graba para ti | Sí | N/A (perf) | No | Sí |
| Mejor para | Análisis interactivo de perf | Vista de texto rápido | SVGs compartibles | Multiplataforma |
Recursos