0

アプリケーションのパフォーマンスを調整するために oprofile を使用しています。以下は、プロファイリング データの収集方法です。

platform info: virtual machine (KVM-based), linux kernel 2.6.21, x86 64bit, 

1. opcontrol --init
2. opcontrol --no-vmlinux -p library -c 100
3. opcontrol --status

Separate options: library
vmlinux file: none
Image filter: none
Call-graph depth: 100

4. opcontrol -s
5. /*running my application*/
6. opcontrol -h
7. opreport -l my_application

20136     0.0000  no-vmlinux               no-vmlinux               /no-vmlinux
1311      0.0000  libcrypto.so.0.9.8       lighttpd                 /opt/ccnsr/lib64/libcrypto.so.0.9.8
455       0.0000  libxml2.so.2.6.26        my_application                     /opt/ccnsr/lib64/libxml2.so.2.6.26
350       0.0000  libc-2.5.90.so           my_application           _int_malloc
195       0.0000  libpython2.4.so.1.0      python                   PyEval_EvalFrame
142       0.0000  libc-2.5.90.so           my_application           vfprintf
79        0.0000  libc-2.5.90.so           my_application           _IO_default_xsputn

opreport の "%" 列は常に 0.0000 を示していました!

4

1 に答える 1

0

主に I/O を行う小さなアプリを作成し、実時間 (CPU ではなく) でサンプリングし、排他的なパーセントを表示すると、すべてのパーセントがゼロに非常に近いことがわかります。

その理由は、プログラムが、以前に開始された IO が完了するのを待つためにほとんどすべての時間を費やしているためです。そのため、待機に費やす時間と比較すると、ルーチンに費やす時間の割合はほとんどありません。

于 2012-04-17T16:14:50.520 に答える