Aller au contenu

hotspot - GUI pour les profils Linux perf

hotspot - GUI pour les profils Linux perf

hotspot (par KDAB) est une GUI Qt pour le profileur Linux perf. Vous enregistrez avec perf record comme d’habitude, puis ouvrez le perf.data résultant dans hotspot pour l’explorer comme des graphes en flamme interactifs, des arbres d’appels haut-bas et bas-haut, des vues appelant/appelé, des chronologies par thread, et une analyse off-CPU. Elle transforme la sortie difficile à lire de perf report en un profil visuel et navigable — et elle peut même lancer et enregistrer perf pour vous.

Installation

PlateformeCommande
Debian/Ubuntusudo apt install hotspot
Fedorasudo dnf install hotspot
Arch Linuxsudo pacman -S hotspot
AppImagetélécharger depuis la page GitHub Releases (portable)
Exigenceslinux-perf / perf installé

Enregistrement (deux façons)

# Option A : enregistrer avec perf, puis ouvrir dans hotspot
perf record --call-graph dwarf -F 999 ./my-program args
hotspot perf.data

# Option B : laisser hotspot enregistrer pour vous (onglet GUI « Record »)
hotspot   # choisir le binaire, les options, et appuyer sur Record
flag perfObjectif
--call-graph dwarfMeilleur déroulage de pile (nécessite les infos de debug)
--call-graph fpDéroulage de pointeur de cadre (plus rapide, nécessite -fno-omit-frame-pointer)
-F 999Échantillon à 999 Hz
-p PIDEnregistrer un processus en cours d’exécution
-gActiver les graphes d’appels

Vues

VueAffiche
SummaryComptes d’exemples, threads, symboles les plus chauds
Flame GraphPiles agrégées ; largeur = temps
Top DownArbre d’appels des racines aux feuilles
Bottom UpFonctions de feuille chaudes et leurs appelants
Caller/CalleeCoût entrant/sortant par symbole
TimelineActivité par thread dans le temps
ActionUtilisation
Cliquer sur un cadreZoomer le graphe en flamme dans ce sous-arbre
RechercheFiltrer les symboles par nom
Sélectionner la plage de temps (chronologie)Concentrer l’analyse sur une phase
Inverser (bas-haut)Trouver les fonctions de feuille coûteuses
Filtrer par thread/processusIsoler un worker

Analyse off-CPU

hotspot peut visualiser où les threads étaient bloqués (en attente), pas seulement brûlant CPU — utile pour les problèmes de latence.

# Enregistrer les commutateurs de planificateur pour l'aperçu off-CPU
perf record --call-graph dwarf -e cycles \
  -e sched:sched_switch --switch-events ./my-program
hotspot perf.data

Obtenir de bonnes piles

BesoinFaire
Symboles lisiblesConstruire avec les infos de debug (-g), ne pas strip
Piles profondes--call-graph dwarf
Piles bon marchéPointeurs de cadre + --call-graph fp
Symboles du noyausysctl kernel.kptr_restrict=0, exécuter perf en tant que root
Permissions perfsysctl kernel.perf_event_paranoid=1 (ou inférieur)

Workflows courants

# Profiler un programme lié au CPU et explorer le graphe en flamme
perf record --call-graph dwarf -F 999 ./app
hotspot perf.data

# Enquêter sur la lenteur d'une requête (temps bloqué/off-CPU)
perf record --call-graph dwarf -e sched:sched_switch --switch-events ./server
hotspot perf.data   # inspecter le graphe en flamme off-CPU

hotspot vs autres interfaces perf

Aspecthotspotperf reportScripts FlameGraphsamply
InterfaceQt GUITUI/texteSVG statiqueFirefox Profiler
Off-CPUOuiLimitéManuelLimité
Enregistrements pour vousOuiN/A (perf)NonOui
Meilleur pourAnalyse perf interactiveVue texte rapideSVG partageablesMultiplateforme

Ressources