Zum Inhalt springen

hotspot - GUI for Linux perf Profiles Cheatsheet

hotspot - GUI for Linux perf Profiles Cheatsheet

hotspot (von KDAB) ist ein Qt GUI für den Linux perf Profiler. Du Zeichnest mit perf record wie üblich auf, Dann öffne das resultierende perf.data in hotspot zum Erkunden als Interaktiv Flame Graphs, Top-Down und Bottom-Up Call Trees, Caller/Callee Ansichten, Pro-Thread Timelines und Off-CPU Analyse. Es Verwandelt den Schwer-zu-lesenden Output von perf report in ein Visuell, Navigierbar Profil — und es kann Sogar Start und Aufzeichnung perf für Dich.

Installation

PlattformBefehl
Debian/Ubuntusudo apt install hotspot
Fedorasudo dnf install hotspot
Arch Linuxsudo pacman -S hotspot
AppImageDownload von der GitHub Releases Seite (Portabel)
Erfordertlinux-perf / perf Installiert

Aufzeichnung (Zwei Wege)

# Option A: Aufzeichnung mit perf, Dann öffne in hotspot
perf record --call-graph dwarf -F 999 ./my-program args
hotspot perf.data

# Option B: Lasse hotspot Aufzeichnung für Dich (GUI "Record" Tab)
hotspot   # Wähle das Binary, Optionen, und Klick Record
perf FlagZweck
--call-graph dwarfBeste Stack Unwinding (Braucht Debug Info)
--call-graph fpFrame-Pointer Unwinding (Schneller, Braucht -fno-omit-frame-pointer)
-F 999Taste auf 999 Hz
-p PIDAufzeichnung ein laufenden Prozess
-gErmögliche Call Graphs

Ansichten

AnsichtZeigt
ZusammenfassungSample Counts, Threads, Hotteste Symbols
Flame GraphAggregierte Stacks; Breite = Zeit
Top DownCall Tree von Roots zu Leaves
Bottom UpHeiße Blatt Funktionen und Ihre Callers
Caller/CalleePro-Symbol Inbound/Outbound Cost
TimelinePro-Thread Aktivität über Zeit
AktionNutzung
Klick ein FrameZoom den Flame Graph in diesen Subtree
SucheFilter Symbols nach Namen
Wähle Zeit Bereich (Timeline)Fokus Analyse auf ein Phase
Invert (Bottom-Up)Finde Teure Blatt Funktionen
Filter nach Thread/ProzessIsolier ein Worker

Off-CPU Analyse

hotspot kann Visualisiere wo Threads waren Blockiert (Wartend), nicht Nur CPU Brennende — Hilfreich für Latenz Probleme.

# Aufzeichnung Scheduler Switches für Off-CPU Insight
perf record --call-graph dwarf -e cycles \
  -e sched:sched_switch --switch-events ./my-program
hotspot perf.data

Bekomme Gute Stacks

BraucheMacht
Lesbare SymbolsBaue mit Debug Info (-g), Nicht Strip
Tiefe Stacks--call-graph dwarf
Billig StacksFrame Pointers + --call-graph fp
Kernel Symbolssysctl kernel.kptr_restrict=0, Führe perf als Root aus
perf Permissionssysctl kernel.perf_event_paranoid=1 (oder Niedriger)

Common Workflows

# Profile ein CPU-Gebunden Programm und Erkunde den Flame Graph
perf record --call-graph dwarf -F 999 ./app
hotspot perf.data

# Untersuche Warum ein Request Langsam ist (Blockiert/Off-CPU Zeit)
perf record --call-graph dwarf -e sched:sched_switch --switch-events ./server
hotspot perf.data   # Inspiziere den Off-CPU Flame Graph

hotspot vs Andere perf Front Ends

Aspekthotspotperf ReportFlameGraph Scriptssamply
UIQt GUITUI/TextStatic SVGFirefox Profiler
Off-CPUJaBegrenztManuellBegrenzt
Aufzeichnung für DichJaN/A (perf)NeinJa
Beste fürInteraktiv perf AnalyseSchnell Text AnsichtShareable SVGsCross-Plattform

Ressourcen