Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

43.5.2. 単一実行可能ファイルでの opreport の使用

特定の実行可能ファイルに関する詳細なプロファイル情報を取得するには、opreport を使用します。
opreport <mode> <executable>
分析するには、実行可能ファイルへの完全パスである <executable> 必要があります。<mode&gt; は以下のいずれかである必要があります。
-l
シンボルでサンプルデータを一覧表示します。たとえば、以下は、コマンド opreport -l /lib/tls/libc- <version > .so の実行からの出力の一部になります。
samples  %        symbol name
12       21.4286  __gconv_transform_utf8_internal
5         8.9286  _int_malloc
4         7.1429  malloc
3         5.3571  __i686.get_pc_thunk.bx
3         5.3571  _dl_mcount_wrapper_check
3         5.3571  mbrtowc
3         5.3571  memcpy
2         3.5714  _int_realloc
2         3.5714  _nl_intern_locale_data
2         3.5714  free
2         3.5714  strcmp
1         1.7857  __ctype_get_mb_cur_max
1         1.7857  __unregister_atfork
1         1.7857  __write_nocancel
1         1.7857  _dl_addr
1         1.7857  _int_free
1         1.7857  _itoa_word
1         1.7857  calc_eclosure_iter
1         1.7857  fopen@@GLIBC_2.1
1         1.7857  getpid
1         1.7857  memmove
1         1.7857  msort_with_tmp
1         1.7857  strcpy
1         1.7857  strlen
1         1.7857  vfprintf
1         1.7857  write
最初の列はシンボルのサンプル数で、2 番目のコラムは、実行ファイルのサンプル全体に対するこのシンボルのサンプルの割合であり、3 番目のコラムはシンボル名です。
サンプルの最大数から最小(逆引き順序)に出力を並べ替えるには、-l オプションとともに -r を使用します。
-i <symbol-name>
シンボル名に固有のサンプルデータを一覧表示します。たとえば、以下の出力は、opreport -l -i __gconv_transform_utf8_internal /lib/tls/libc- <version> .so コマンドからの ものです。
samples  %        symbol name
12       100.000  __gconv_transform_utf8_internal
最初の行は、シンボル/実行可能な組み合わせの概要です。
最初の列は、メモリーシンボルのサンプル数です。2 番目のコラムは、シンボルのサンプルの合計数に対するメモリーアドレスのサンプルの割合です。3 列目はシンボル名です。
-d
-l よりも詳細でシンボルでサンプルデータを一覧表示します。たとえば、以下の出力は、コマンド opreport -l -d __gconv_transform_utf8_internal /lib/tls/libc- <version> .so からの ものです。
vma      samples  %        symbol name
00a98640 12       100.000  __gconv_transform_utf8_internal
00a98640 1         8.3333
00a9868c 2        16.6667
00a9869a 1         8.3333
00a986c1 1         8.3333
00a98720 1         8.3333
00a98749 1         8.3333
00a98753 1         8.3333
00a98789 1         8.3333
00a98864 1         8.3333
00a98869 1         8.3333
00a98b08 1         8.3333
データは -l オプションと同じですが、シンボルごとに、使用される各仮想メモリーアドレスが表示されます。仮想メモリーアドレスごとに、シンボルのサンプル数に対するサンプル数およびパーセンテージが表示されます。
-x<symbol-name>
出力からシンボルのコンマ区切りリストを除外します。
session:<name>
/var/lib/oprofile/samples/ ディレクトリーに対するセッションまたはディレクトリーへの完全パスを指定します。