コンテンツにスキップ

hotspot - Linux perf プロファイル用 GUI チートシート

hotspot - Linux perf プロファイル用 GUI チートシート

hotspot (KDAB) は Linux perf プロファイラー用 Qt GUI。いつもどおり perf record で記録してから、hotspot の結果 perf.data を開いてインタラクティブ フレームグラフ、トップダウン・ボトムアップ コール木、呼び出し元/被呼び出し者ビュー、スレッドタイムライン、オフ CPU 分析として探索。perf report の読みづらい出力をビジュアル、ナビゲート可能なプロファイル — perf を起動し記録することさえできます。

インストール

プラットフォームコマンド
Debian/Ubuntusudo apt install hotspot
Fedorasudo dnf install hotspot
Arch Linuxsudo pacman -S hotspot
AppImageGitHub Releases ページからダウンロード (ポータブル)
要件linux-perf / perf インストール済み

記録 (2 つの方法)

# オプション A: perf で記録、その後 hotspot で開く
perf record --call-graph dwarf -F 999 ./my-program args
hotspot perf.data

# オプション B: hotspot に記録させる (GUI 「Record」タブ)
hotspot   # バイナリ、オプション選択、Record 実行
perf フラグ目的
--call-graph dwarf最高スタック アンワインド (デバッグ情報必要)
--call-graph fpフレームポインター アンワインド (高速、-fno-omit-frame-pointer 必要)
-F 999999 Hz でサンプル
-p PID実行中プロセスを記録
-gコール グラフを有効化

ビュー

ビュー表示
サマリーサンプルカウント、スレッド、最もホット記号
フレームグラフ集約スタック; 幅 = 時刻
トップ ダウンルートからリーフへのコール木
ボトム アップホット リーフ関数とそのコーラー
呼び出し元/被呼び出し者記号ごとのインバウンド/アウトバウンド コスト
タイムラインスレッドごとの時刻を超えた活動

ナビゲート

アクション使用
フレームをクリックフレームグラフをそのサブツリーにズーム
検索記号名でフィルター
時刻範囲を選択 (タイムライン)分析を段階にフォーカス
反転 (ボトムアップ)高額リーフ関数を見つける
スレッド/プロセスでフィルターワーカーを分離

オフ CPU 分析

hotspot はスレッドが ブロック (待機) されていた場所を可視化可能 — CPU 焼却だけでなく、遅延問題向け有用。

# スケジューラー スイッチをオフ CPU インサイト向けに記録
perf record --call-graph dwarf -e cycles \
  -e sched:sched_switch --switch-events ./my-program
hotspot perf.data

良好スタックを取得

必要実行
読み取り記号デバッグ情報で構築 (-g)、ストリップしない
深いスタック--call-graph dwarf
低コスト スタックフレームポインター + --call-graph fp
カーネル記号sysctl kernel.kptr_restrict=0, perf を root で実行
perf パーミッションsysctl kernel.perf_event_paranoid=1 (またはより低い)

一般的なワークフロー

# CPU バウンドプログラムをプロファイルしてフレームグラフを探索
perf record --call-graph dwarf -F 999 ./app
hotspot perf.data

# リクエストが遅い理由を調査 (ブロック/オフ CPU 時刻)
perf record --call-graph dwarf -e sched:sched_switch --switch-events ./server
hotspot perf.data   # オフ CPU フレームグラフを検査

hotspot vs その他の perf フロントエンド

アスペクトhotspotperf reportFlameGraph スクリプトsamply
UIQt GUITUI/テキスト静的 SVGFirefox Profiler
オフ CPUあり限定的マニュアル限定的
記録担当ありN/A (perf)いいえあり
最適な用途インタラクティブ perf 分析クイック テキストビュー共有可能 SVGクロスプラットフォーム

リソース