Pular para o conteúdo

hotspot - GUI para Perfis Linux perf

hotspot - GUI para Perfis Linux perf

hotspot (por KDAB) é uma GUI Qt para o profiler perf do Linux. Você grava com perf record como de costume, depois abre o perf.data resultante em hotspot para explorá-lo como gráficos de chama interativos, árvores de chamada top-down e bottom-up, vistas de caller/callee, timelines por thread e análise off-CPU. Transforma a saída difícil de ler de perf report em um perfil visual navegável — e pode até iniciar e gravar perf para você.

Instalação

PlataformaComando
Debian/Ubuntusudo apt install hotspot
Fedorasudo dnf install hotspot
Arch Linuxsudo pacman -S hotspot
AppImagefaça download da página de Releases do GitHub (portável)
Requerlinux-perf / perf instalado

Gravação (Dois Caminhos)

# Opção A: grave com perf, depois abra em hotspot
perf record --call-graph dwarf -F 999 ./my-program args
hotspot perf.data

# Opção B: deixe hotspot gravar para você (aba "Record" na GUI)
hotspot   # escolha o binário, opções, e clique Record
Flag de perfPropósito
--call-graph dwarfMelhor unwinding de pilha (precisa info de debug)
--call-graph fpUnwinding de apontador de frame (mais rápido, precisa -fno-omit-frame-pointer)
-F 999Amostra em 999 Hz
-p PIDGrave um processo em execução
-gHabilite gráficos de chamada

Vistas

VistaMostra
ResumoContagens de amostra, threads, símbolos mais quentes
Gráfico de ChamaPilhas agregadas; largura = tempo
Top DownÁrvore de chamada de raízes para folhas
Bottom UpFunções folha quentes e seus chamadores
Caller/CalleeCusto inbound/outbound por símbolo
TimelineAtividade por thread com o tempo
AçãoUso
Clique em um frameZoom o gráfico de chama naquela subárvore
ProcureFiltre símbolos por nome
Selecione intervalo de tempo (timeline)Analise focus em uma fase
Inverta (bottom-up)Encontre funções de folha caras
Filtre por thread/processoIsole um worker

Análise Off-CPU

hotspot pode visualizar onde threads estavam bloqueadas (esperando), não apenas queimando CPU — útil para problemas de latência.

# Grave mudanças de scheduler para insight off-CPU
perf record --call-graph dwarf -e cycles \
  -e sched:sched_switch --switch-events ./my-program
hotspot perf.data

Obtendo Boas Pilhas

NecessidadeFaça
Símbolos legíveisConstrua com info de debug (-g), não despoje
Pilhas profundas--call-graph dwarf
Pilhas baratasApontadores de frame + --call-graph fp
Símbolos de kernelsysctl kernel.kptr_restrict=0, execute perf como root
Permissões de perfsysctl kernel.perf_event_paranoid=1 (ou inferior)

Workflows Comuns

# Perfil um programa vinculado a CPU e explore o gráfico de chama
perf record --call-graph dwarf -F 999 ./app
hotspot perf.data

# Investigue por que uma requisição é lenta (tempo bloqueado/off-CPU)
perf record --call-graph dwarf -e sched:sched_switch --switch-events ./server
hotspot perf.data   # inspecione o gráfico de chama off-CPU

hotspot vs Outros Fronts-End de perf

Aspectohotspotperf reportScripts FlameGraphsamply
UIQt GUITUI/textoSVG estáticoFirefox Profiler
Off-CPUSimLimitadoManualLimitado
Grava para vocêSimN/A (perf)NãoSim
Melhor paraAnálise interativa de perfVista rápida de textoSVGs compartilháveisCross-platform

Recursos