我已經得到了strace -c
結果在RHEL 7和RHEL 6 這個命令:strace的-c不顯示正確秒
strace -c /bin/sleep 20
,我不明白爲什麼nanosleep
的seconds
列等於0.我希望它是20
0.00 0.000000 0 1 nanosleep
這是一個完整的strace的報告:
$ strace -c /bin/sleep 20
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00 0.000019 1 15 12 open
0.00 0.000000 0 1 read
0.00 0.000000 0 5 close
0.00 0.000000 0 8 6 stat
0.00 0.000000 0 3 fstat
0.00 0.000000 0 9 mmap
0.00 0.000000 0 3 mprotect
0.00 0.000000 0 1 munmap
0.00 0.000000 0 3 brk
0.00 0.000000 0 1 1 access
0.00 0.000000 0 1 nanosleep
0.00 0.000000 0 1 execve
0.00 0.000000 0 1 arch_prctl
------ ----------- ----------- --------- --------- ----------------
100.00 0.000019 52 19 total
而且有來電的詳細報告給了nanosleep:
nanosleep({20, 0}, NULL) = 0
秒左右必須是20,不是0。你覺得呢?
是的,你是對的。實際上,整個報價是:'在Linux上,它試圖顯示系統時間(花費在內核中的CPU時間)**獨立於掛鐘時間**'。所以這不是一個時鐘。 –
@SergeiKurenkov是的,我已經看到「獨立於...」,但在我看來,這是多餘的,甚至是誤導性的。 _spent time_,又名_duration_,如何依賴掛鐘?但是,編寫手冊頁的人覺得需要指定。 – linuxfan