prof はプログラムによって使用される CPU 時間の統計プロファイルを生成し、プログラム中の各関数へ制御が渡される回数をカウントします。さらに詳細なデータは、コールグラフプロファイルおよびコードカバレージツールによって提供されます。
prof を利用するための手順は以下の 3 段階となっています。
prof 用のプログラムをコンパイルします。
プログラムを実行して、プロファイルデータファイルを作成します。
prof を使ってデータを要約したレポートを生成します。
prof によるプロファイリング用のプログラムをコンパイルするには、コンパイラに対して -p オプションを使用してください。たとえば、index.assist.c という名前の C のソースファイルをプロファイリング用にコンパイルするには、以下のコンパイラコマンドを使用します。
% cc -p -o index.assist index.assist.c
コンパイラは index.assist という名前のプログラムを作成します。
次に、この index.assist プログラムを実行してください。プログラムを実行するたびに、プロファイリングデータが mon.out と呼ばれるファイルに送られます。プログラムを実行するたびに、新しい mon.out が生成され、古いバージョンは上書きされます。
% index.assist % ls mon.out mon.out % prof index.assist
%Time |
Seconds |
Cumsecs |
#Calls |
msecs/call |
Name |
19.4 |
3.28 |
3.28 |
11962 |
0.27 |
compare_strings |
15.6 |
2.64 |
5.92 |
32731 |
0.08 |
_strlen |
12.6 |
2.14 |
8.06 |
4579 |
0.47 |
__doprnt |
10.5 |
1.78 |
9.84 |
|
|
mcount |
9.9 |
1.68 |
11.52 |
6849 |
0.25 |
_get_field |
5.3 |
0.90 |
12.42 |
762 |
1.18 |
_fgets |
4.7 |
0.80 |
13.22 |
19715 |
0.04 |
_strcmp |
4.0 |
0.67 |
13.89 |
5329 |
0.13 |
_malloc |
3.4 | 0.57 | 14.46 | 11152 | 0.05 | _insert_index_entry |
3.1 | 0.53 | 14.99 | 11152 | 0.05 | _compare_entry |
2.5 | 0.42 | 15.41 | 1289 | 0.33 | lmodt |
0.9 | 0.16 | 15.57 | 761 | 0.21 | _get_index_terms |
0.9 | 0.16 | 15.73 | 3805 | 0.04 | _strcpy |
0.8 | 0.14 | 15.87 | 6849 | 0.02 | _skip_space |
0.7 | 0.12 | 15.99 | 13 | 9.23 | _read |
0.7 | 0.12 | 16.11 | 1289 | 0.09 | ldivt |
0.6 | 0.10 | 16.21 | 1405 | 0.07 | _print_index |
. . (以下の出力はそれほど重要ではありません) |