gperf.htm
3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<HTML>
<HEAD>
<TITLE>HTML 文書</TITLE>
<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0j">
</HEAD>
<BODY>
<P>
<B>gperf(1P)<BR>
</B>
<P>
<B>関数名<BR>
</B>
<P>
gperf
<P>
→ プロファイルデータを分析する。<BR>
<P>
<B>構文<BR>
</B>
<P>
gperf [-c] [-r] [-s] [-t threshold] a.out<BR>
<P>
<B>説明 <BR>
</B>
<P>
<B>gperf</B>プログラムは、a.out(または実行名)からシンボルテーブル情報に添った<A HREF="../os/osProfile.htm">osProfile</A>(3P)関数によって作り出された出力データを、種々の関数プログラムによって、費やされた相対時間の詳細報告をもとにコンバートします。このデータは一定間隔のプログラム割り込みであるpc-samplingを使用して、プログラムカウンターの値を記録して取得されます。
<BR>
<P>
<B>gperf</B>は、照会モード(デフォルト)で操作することができます。その中で、各処理が開発ボード上で動作しているプログラムへ要求を送り、プロファイルデータを取得します。プロファイルされたデータは、<B>gperf</B>によってホストに戻され、表示されます。データを表示した後で、<B>gperf</B>は抜けます。<B>gperf</B>はまた、サーバーモードで動作可能です。-sオプションで<A HREF="../os/osProfileFlush.htm">osProfileFlush</A>関数を実行するプログラムを待ってスピンします。<B>gperf</B>は、それからデータを表示して、次の<A HREF="../os/osProfileFlush.htm">osProfileFlush</A>を待ちます。
<BR>
<P>
<B>gperf</B>は、常に表示されている関数、関数名のアドレスを表示し、関数によって使われる実行時間の割り合いを表示します。<B>gperf</B>の出力の例を示します:
<BR>
<P>
-------------------------------------------------------------
<P>
Profile Report for osprof
<P>
Number of text symbols: 195
<P>
Sample period: 1000 microseconds
<P>
Number of profiled segments: 2
<P>
Text segment 0, start = 80200050, size = 000000d4
<P>
Text segment 1, start = 80200470, size = 000031cc
<P>
-------------------------------------------------------------
<BR>
<P>
80202088 osProfileStop.............................. 0.0616
%
<P>
80201720 osSetThreadPri............................. 0.1232
%
<P>
Overflow ........................................... 99.8152
%<BR>
<BR>
<P>
<B>オプション<BR>
</B>
<P>
<B>-c</B>
<P>
それぞれのテキストシンボルのために加工していない回数を表示する。-tオプションは、スレッショルドのために加工していない回数の装置を使用する。
<P>
<B>-r</B>
<P>
数秒で、それぞれのテキストシンボルによって使われる時間を表示します。
<P>
<B>-s</B>
<P>
サーバーモードで実行します。即ち、<B>gperf</B>からflushを起動するよりむしろアプリケーションからフラッシュを待つ。そしてEXITしない。アプリケーションは、<A HREF="../os/osProfileFlush.htm">osProfileFlush</A>を送ることによって互いに協力する必要があることに注意する。
<BR>
<P>
<B>-t スレッショルド</B>
<P>
結果をプリントするためのスレッショルドを定義します。デフォルト値は1.0です。-cオプションを使う場合、スレッショルドは加工していない回数の装置にあり、さもなければ装置は実行時間のパーセントです。
<BR>
<P>
<B>バグ<BR>
</B>
<P>
-sオプション無しで<B>gperf</B>を実行し、アプリケーションが<A HREF="../os/osProfileFlush.htm">osProfileFlush</A>を実行する場合、アプリケーションはハングする。
<BR>
</BODY>
</HTML>