Ir al contenido

hotspot - Interfaz gráfica para Perfiles Linux perf

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

PlataformaComando
Debian/Ubuntusudo apt install hotspot
Fedorasudo dnf install hotspot
Arch Linuxsudo pacman -S hotspot
AppImagedescargar desde la página GitHub Releases (portátil)
Requierelinux-perf / perf instalado

Grabación (Dos Formas)

# 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 perfPropósito
--call-graph dwarfMejor desenvoltura de pila (necesita info de depuración)
--call-graph fpDesenvoltura de puntero de marco (más rápida, necesita -fno-omit-frame-pointer)
-F 999Muestra a 999 Hz
-p PIDGrabar un proceso en ejecución
-gHabilitar gráficos de llamadas

Vistas

VistaMuestra
ResumenConteos de muestras, hilos, símbolos más calientes
Gráfico de LlamaPilas agregadas; ancho = tiempo
De Arriba hacia AbajoÁrbol de llamadas de raíces a hojas
De Abajo hacia ArribaFunciones hoja caliente y sus llamantes
Llamante/LlamadoCosto de entrada/salida por símbolo
Línea de TiempoActividad por hilo a lo largo del tiempo
AcciónUso
Hacer clic en un marcoEnfocar el gráfico de llama en ese subárbol
BúsquedaFiltrar 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/procesoAislar 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

NecesidadHacer
Símbolos legiblesCompilar con info de depuración (-g), no despojar
Pilas profundas--call-graph dwarf
Pilas baratasPunteros de marco + --call-graph fp
Símbolos del kernelsysctl kernel.kptr_restrict=0, ejecutar perf como root
Permisos de perfsysctl 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

Aspectohotspotperf reportScripts FlameGraphsamply
InterfazGUI QtTUI/textoSVG estáticoFirefox Profiler
Fuera-de-CPULimitadoManualLimitado
Graba para tiN/A (perf)No
Mejor paraAnálisis interactivo de perfVista de texto rápidoSVGs compartiblesMultiplataforma

Recursos