本文へスキップ

perfとは?

ぱーふ

perfとはLinuxカーネルに組み込まれたパフォーマンス解析ツールで、CPUの使用状況やボトルネックを詳細に計測できます。

perf(パフォーマンスカウンタ)は、Linuxカーネルのサブシステムとして実装されたプロファイリング・トレーシングツールです。Linuxカーネル2.6.31から導入され、perfコマンドとして操作します。CPUハードウェアが持つパフォーマンスカウンタ(PMU)を直接利用するため、オーバーヘッドが小さく本番環境でも使用可能です。

主な機能は以下のとおりです。

  • perf stat: CPUサイクル数・キャッシュミス数・命令数などのハードウェアカウンタをまとめて集計
  • perf record / perf report: サンプリングによる関数レベルの実行時間プロファイル
  • perf top: topコマンドのようなリアルタイムプロファイラ
  • perf trace: システムコールのトレース(straceの高速版に相当)

特にFlame Graph(炎グラフ)と組み合わせることで、コールスタック全体のボトルネックを視覚的に把握できます。データベースエンジン・Webサーバー・ゲームエンジンなど、パフォーマンスがクリティカルなソフトウェアの最適化に欠かせないツールとして、インフラエンジニアやシステムプログラマーに広く使われています。

使い方・例文

Webサーバーのレスポンスが遅い原因を調べるとき、perf recordで本番プロセスを数秒間サンプリングし、perf reportでどの関数に時間がかかっているか特定する、といった使い方が一般的です。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語