perf stat でカウンターを確認する
このステップでは、perf stat
コマンドを使用してパフォーマンスカウンターを測定する方法を学びます。パフォーマンスカウンターは、CPU 内で発生する特定のイベント(実行された命令の数、キャッシュミス、分岐予測など)をカウントする特殊なハードウェアレジスタです。
perf
ツールは、Linux でのパフォーマンス分析に使用される強力なコマンドラインユーティリティです。perf stat
は、コマンドを実行し、そのコマンドの実行に関するパフォーマンスカウンターの統計情報を収集するために使用されます。
まずは、簡単なコマンドを実行してそのパフォーマンスカウンターを観察してみましょう。ディレクトリの内容を一覧表示する ls
コマンドを使用します。
まだターミナルを開いていない場合は、開いてください。デスクトップの左側にある Xfce Terminal アイコンを見つけることができます。
次に、以下のコマンドを入力して Enter キーを押します。
perf stat ls
以下のような出力が表示されるはずです。
Performance counter stats for 'ls':
<placeholder> task-clock (msec) ## <placeholder> CPUs utilized
<placeholder> context-switches ## <placeholder> /sec
<placeholder> cpu-migrations ## <placeholder> /sec
<placeholder> page-faults ## <placeholder> /sec
<placeholder> cycles ## <placeholder> GHz
<placeholder> instructions ## <placeholder> insns per cycle
<placeholder> branches ## <placeholder> % of all instructions
<placeholder> branch-misses ## <placeholder> % of all branches
<placeholder> msec task-clock ## <placeholder> CPUs utilized
正確な数値やイベントは、システムや具体的な実行状況によって異なる場合がありますが、ls
コマンドの実行中のパフォーマンスイベントとそのカウントのリストが表示されるはずです。
よく見られるイベントには以下のようなものがあります。
task-clock
: タスクが CPU 上で実行されていた合計時間。
cycles
: 消費された CPU サイクルの数。
instructions
: 実行された命令の数。
branch-misses
: 分岐予測が誤った回数。
これらのカウンターを理解することで、コードやシステムのパフォーマンスのボトルネックを特定するのに役立ちます。
より複雑なコマンドやスクリプトに対して perf stat
を実行し、そのパフォーマンスを分析することもできます。
たとえば、簡単な sleep
コマンドに対して perf stat
を実行してみましょう。
perf stat sleep 1
これにより、システムが 1 秒間スリープしている間のパフォーマンスカウンターが測定されます。出力には、sleep
プロセスのカウンターが表示されます。
異なるコマンドに対して perf stat
を実行し、カウンターがどのように変化するかを実験してみてください。
Continue をクリックして次のステップに進みます。