`strace -r`と`strace -T`オプションの違いは何ですか?

`strace -r`と`strace -T`オプションの違いは何ですか?

2つの違いは何ですか?マニュアルページには次のように記載されています。

   -r          Print a relative timestamp upon entry to each system call.  This records the time difference between  the  beginning  of
               successive system calls.

   -T          Show the time spent in system calls.  This records the time difference between the beginning and the end of each  system
               call.

私の唯一の説明は、-T各呼び出しに費やされた時間を示していますが、-r各システム呼び出しの後に待機するのにかかる時間も考慮することです。

straceこれは、コマンドでそのスニペットを表示すると、コマンドuptimeが各呼び出しに以下より長くかかることを示すという-r事実に裏付けられているようです。-T以下を参照してください。

0.000039 uname({sysname="Linux", nodename="ip-172-31-55-20", ...}) = 0
0.000043 open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 3
0.000045 read(3, "0\n", 8192)      = 2
0.000035 close(3)                  = 0

&

uname({sysname="Linux", nodename="ip-172-31-55-20", ...}) = 0 <0.000010>
open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 3 <0.000018>
read(3, "0\n", 8192)                    = 2 <0.000014>
close(3)                                = 0 <0.000023>

これは正しいですか?

ベストアンサー1

本当にそうです。はい。

表示された追加時間-rは、待機に費やされた時間ではなく、システムコール(計算、メモリ操作...)に関連付けられていない他のタスクを実行するのに費やされた時間です。

おすすめ記事