第14章 OProfile

OProfile はオーバーヘッドが低く、システム全体のプロファイラーで、プロセッサー上のパフォーマンス監視ハードウェアを使用して、メモリーの参照時、レベル 2 キャッシュ (L2) 要求の数、ハードウェア割り込みの受信回数など、システム上のカーネルおよび実行可能ファイルに関する情報を取得します。これは、設定ユーティリティー、データ収集用のデーモン、および人間が判読可能なフォームに変換するのに使用できるツールで設定されます。OProfile の Red Hat Developer Toolset バージョンで配布されるツールの完全リストは、表14.1「Red Hat Developer Toolset の OProfile と配布されるツール」 を参照してください。

OProfile は、すべての n 番目のイベントの詳細を記録して、インストルメンテーションを追加せずにアプリケーションをプロファイルします。これにより、Valgrind よりも少ないリソースを消費できますが、そのサンプルの正確性も低くなります。Valgrind とは異なり、単一プロセスとユーザー空間内の子データのデータのみを収集するため、OProfile はユーザー空間およびカーネル空間プロセスの両方でシステム全体のデータを収集するのに適しており、実行する root 権限が必要になります。

Red Hat Developer Toolset には OProfile 1.4.0 が同梱されています。

表14.1 Red Hat Developer Toolset の OProfile と配布されるツール

名前説明

operf

Linux Performance Events サブシステムを使用して、単一プロセスまたはシステム全体のサンプルを記録します。

opannotate

プロファイリングデータからアノテーション付きのソースファイルまたはアセンブリーのリストを生成します。

oparchive

実行ファイル、デバッグファイル、およびサンプルファイルを含むディレクトリーを生成します。

opgprof

gprof と互換性のある形式でプロファイリングセッションの概要を生成します。

ophelp

利用できるイベントのリストを表示します。

opimport

サンプルデータベースファイルをネイティブバイナリー形式からネイティブ形式に変換します。

opjitconv

just-in-time (JIT) ダンプファイルを Executable および Linkable Format (ELF) に変換します。

opreport

プロファイリングセッションのイメージおよびシンボルの概要を生成します。

ocount

監視対象のコマンドの実行中に特定のイベントが発生する回数をカウントするための新しいツール。

14.1. OProfile のインストール

Red Hat Developer Toolset では、devtoolset-12-oprofile パッケージにより OProfile が提供され、「Red Hat Developer Toolset のインストール」 で説明されているように devtoolset-12-perftools で自動的にインストールされます。