2013-05-26 2 views
1

사용 strace -T -tt -o outputfile myprogram는 넣어 아웃strace를 타임 스탬프의 의미

16과 같은 경우 : 14 : 37.576804 쓰기 (1 "EFFEEFFFEFFGGEEFEEFECEEDB"... 4096) = 4096 < 0.000014> 16 : 14 : 37.577121 4096 < 0.000015> 16 : 14 : 37.577434 쓰기 (1, ", ... ,,,. \ tDEDEEDEDEEBDEEFECECFBEE"쓰기, (1, "66098 \ tT \ t41 \ t ...., ....., ..., ..., 4096) = 4096 < 0.000016>

첫 번째 열은 해당 시스템 호출의 시작 시간 또는 종료 시간을 의미합니까? 주어진 -T와 같이 마지막 열은 "시스템 호출에 소요 된 시간을 표시합니다. 이것은 각 시스템 호출의 시작과 끝 사이의 시간 차이를 기록합니다." 두 건의 쓰기 호출 사이의 시간 차이와 다른 점은 무엇입니까? 처음 두 개는 16 : 14 : 37.577121 - 16 : 14 : 37.576804 = 0.000317> 0.000014입니다.

답변

3

은 실험에 따르면 난 그냥 시도 :

strace -t sleep 2 

타임 스탬프는 콜이 시작된 시간입니다. (그것은 2 초 후에 타임 스탬프가 찍힌 이전의 시스템 호출과 일치하는 타임 스탬프를 가진 nanosleep을 보여 줬다.)

나는 시간에 약간의 측정 부정확성이 없다는 것을 확실히 말할 수 없다. syscall에 소요 된 시간이 타임 스탬프의 차이와 정확히 일치 할 것으로 예상 할 수 없습니다. 프로세스가 syscalls 사이의 사용자 공간에서 일부 작업을 수행해야합니다.

관련 문제