2010-08-07 5 views
27

내 코드의 성능을 알아 내려고했지만, time 명령의 출력을 이해할 수 없습니다. 아무도 시간 명령 출력의 의미를 설명해주십시오.시간 명령의 출력을 이해하는 방법?

time ./filereader 

real 0m0.193s 
user 0m0.012s 
sys 0m0.056s 

무엇 real, user, sys :

다음은 내가 무엇을 얻을?

+0

포괄적 인 대답은 중복 질문을 참조하십시오. http://stackoverflow.com/questions/556405/what-do-real-user-and-sys-me-in-the-output-of-time1 –

답변

32

에서 : http://zch051383471952.blogspot.com/2010/01/different-of-real-user-sys-time.html

리얼 실제 경과 시간을 의미한다; User 및 Sys는 프로세스에 의해서만 사용 된 CPU 시간을 로 참조합니다.

  • Real은 통화 시작부터 종료까지의 벽시계 시간입니다. 이것은 시간 경과를 포함하여 모든 경과 시간입니다. 은 다른 프로세스에서 사용되고 프로세스 사용이 차단 된 시간 (예 : 이 완료 될 때까지 기다리는 중입니다)입니다.
  • 사용자는 프로세스 내에서 사용자 모드 코드 ( 커널 외부)에 소비 된 CPU 시간의 양입니다. 이것은 프로세스를 실행하는 데 사용 된 실제 CPU 시간 만 입니다. 다른 프로세스와 시간 프로세스가 소비하는 데 걸리는 시간은 이 아닙니다.
  • Sys는 프로세스 내에서 커널에서 소비 한 CPU 시간의 양입니다. 이 은 커널에서 시스템 호출에 소비 한 CPU 시간을 이 여전히 사용자 공간에서 실행중인 라이브러리 코드 인 과 대조하여 실행하는 것을 의미합니다. 'user'처럼이 프로세스는 에서 사용하는 CPU 시간입니다.
10

'real'은 소요 시간입니다. 스톱워치로 시간을 정하면 그게 당신이 얻는 것입니다.

'user'는 프로세스 자체에서 사용 된 CPU 시간입니다.

'sys'는 커널이 프로세스를 위해 소비 한 CPU 시간의 양입니다.

+2

'진짜'는 스톱워치가 말하는 시간은 아니며, 적어도 내 관찰에서. 예를 들어 어젯밤에 나는 프로세스를 시작했고 오늘 아침에는 실제 2376m6.172s를보고합니다. 실제로는 12 시간 미만이 경과했습니다. – feklee

관련 문제