Show Table of Contents
6.2. OProfile
OProfile はシステム全体にわたる Linux プロファイラーで、低いオーバーヘッドでの稼働が可能です。これは、raw サンプルデータ収集のためのカーネルドライバーとデーモン、さらにそのデータを有意な情報に解析するためのツールのスイートで構成されています。OProfile は通常、コードのどのセクションが CPU 時間を最も多く消費しているか、またその理由を判断するために開発者が使用します。
プロファイルの実行中に OProfile はプロセッサーのパフォーマンス監視ハードウェアを使用します。Valgrind はアプリケーションのバイナリーを書き直し、次にインストルメント化します。一方 OProfile は、実行中のアプリケーションをそのままプロファイルします。パフォーマンス監視ハードウェアをセットアップし、イベント x 回ごとにサンプルを採取します (たとえば、キャッシュミスやブランチ指示など)。各サンプルには、プログラムのどこでそれが発生したかという情報が含まれています。
OProfile のプロファイル方法は Valgrind よりも少ないリソースを消費します。しかし、OProfile は root 権限を必要とします。OProfile はコード内での「ホットスポット」を見つけ出し、その原因を探す際に便利です (たとえば、キャッシュパフォーマンスが低い、分岐予想が誤っている、など)。
OProfile を使用する際には、OProfile デーモン (
oprofiled) を開始し、プロファイル対象のプログラムを実行し、システムプロファイルデータを収集し、このデータをより理解しやすい形式に解析することになります。OProfile はこのプロセスのすべてのステップにツールを提供します。
6.2.1. OProfile のツール
便利な OProfile コマンドを以下に挙げます。
- opcontrol
- このツールは OProfile デーモンを開始/終了し、プロファイルセッションの設定に使われます。
- opreport
opreportコマンドは、OProfile プロファイルセッションからバイナリーイメージのサマリーまたは記号ごとのデータを出力します。- opannotate
opannotateは OProfile セッションのプロファイルデータから注釈付きソースおよび/またはアセンブリを出力します。- oparchive
oparchiveコマンドは、実行可能ファイルやデバッグ、OProfile サンプルファイルの入ったディレクトリーを作成します。このディレクトリーは (tarで) 別のマシンに移動でき、そこでオフラインで分析ができます。- opgprof
opreportのように、opgprofコマンドは OProfile セッションからあるバイナリーイメージのプロファイルデータを出力します。opgprofの出力は、gprof形式です。
OProfile コマンドの全一覧は、
man oprofile を参照してください。各 OProfile コマンドの詳細情報については、それぞれの man ページを参照してください。OProfile に関するその他のドキュメントは、「OProfile のドキュメント」 を参照してください。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.