Salta ai contenuti

hotspot - GUI per Profili Linux perf

hotspot - GUI per Profili Linux perf

hotspot (di KDAB) è una GUI Qt per il profiler Linux perf. Registri con perf record come al solito, poi apri il risultante perf.data in hotspot per esplorarlo come grafici flame interattivi, call tree top-down e bottom-up, viste caller/callee, timeline per-thread e analisi off-CPU. Trasforma l”output difficile da leggere di perf report in un profilo visivo e navigabile — e può persino lanciare e registrare perf per te.

Installazione

PiattaformaComando
Debian/Ubuntusudo apt install hotspot
Fedorasudo dnf install hotspot
Arch Linuxsudo pacman -S hotspot
AppImagescarica dalla pagina GitHub Releases (portatile)
Richiedelinux-perf / perf installato

Registrazione (Due Modi)

# Opzione A: registra con perf, poi apri in hotspot
perf record --call-graph dwarf -F 999 ./my-program args
hotspot perf.data

# Opzione B: lascia che hotspot registri per te (scheda "Record" della GUI)
hotspot   # scegli il binario, le opzioni e premi Record
Flag di perfScopo
--call-graph dwarfMigliore srotolamento dello stack (richiede info di debug)
--call-graph fpSrotolamento frame-pointer (più veloce, richiede -fno-omit-frame-pointer)
-F 999Campiona a 999 Hz
-p PIDRegistra un processo in esecuzione
-gAbilita call graph

Viste

VistaMostra
RiepilogoConteggi di campioni, thread, simboli più hot
Grafico FlameStack aggregati; larghezza = tempo
Top DownAlbero di chiamate da radici a foglie
Bottom UpFunzioni foglia hot e i loro chiamanti
Caller/CalleeCosto inbound/outbound per-simbolo
TimelineAttività per-thread nel tempo
AzioneUsa
Clicca su un frameZoom il grafico flame in quel sottoalbero
RicercaFiltra simboli per nome
Seleziona intervallo di tempo (timeline)Metti a fuoco l”analisi su una fase
Inverti (bottom-up)Trova funzioni foglia costose
Filtra per thread/processoIsolaun worker

Analisi Off-CPU

hotspot può visualizzare dove i thread erano bloccati (in attesa), non solo bruciando CPU — utile per problemi di latenza.

# Registra commutatori dello scheduler per intuizioni off-CPU
perf record --call-graph dwarf -e cycles \
  -e sched:sched_switch --switch-events ./my-program
hotspot perf.data

Ottenere Stack Buoni

EsigenzaFai
Simboli leggibiliCompila con info di debug (-g), non strappare
Stack profondi--call-graph dwarf
Stack economiciFrame pointer + --call-graph fp
Simboli del kernelsysctl kernel.kptr_restrict=0, esegui perf come root
Permessi di perfsysctl kernel.perf_event_paranoid=1 (o inferiore)

Flussi di Lavoro Comuni

# Profila un programma CPU-bound ed esplora il grafico flame
perf record --call-graph dwarf -F 999 ./app
hotspot perf.data

# Indaga perché una richiesta è lenta (tempo bloccato/off-CPU)
perf record --call-graph dwarf -e sched:sched_switch --switch-events ./server
hotspot perf.data   # ispeziona il grafico flame off-CPU

hotspot vs Altri Front-End di perf

Aspettohotspotperf reportScript FlameGraphsamply
UIGUI QtTUI/testoSVG staticoFirefox Profiler
Off-CPULimitatoManualeLimitato
Registra per teN/A (perf)No
Migliore perAnalisi interattiva di perfVisualizzazione testo veloceSVG condivisibiliCross-platform

Risorse